项目需要,不使用IO流,只能通过服务器端传字符串发送给客户端,进行文件的下载操作。同时,文件的上传工作也通过传递字符串的方式进行的。
感谢小白和冲~
以下是具体代码。
/** * 根据文件获得文件的bytes的字符串格式 * * @param filePath * @return */ public static String getFileBytes(String filePath) throws AppException { StringBuilder sb = null; byte[] btArray = null; FileInputStream fis = null; ByteArrayOutputStream bos = null; try { File file = new File(filePath); fis = new FileInputStream(file); bos = new ByteArrayOutputStream(1000); byte[] b = new byte[1000]; int n; while ((n = fis.read(b)) != -1) { bos.write(b, 0, n); } btArray = bos.toByteArray(); sb = new StringBuilder(); for (int i = 0; i < btArray.length; i++) { byte bt = btArray[i]; sb.append(bt); sb.append(','); } sb = sb.replace(sb.length() - 1, sb.length() - 1, ""); } catch (FileNotFoundException e) { throw new AppException(CommonEnum.IOERROR.getKey(), CommonEnum.IOERROR.getValue()); } catch (IOException e) { throw new AppException(CommonEnum.IOERROR.getKey(), CommonEnum.IOERROR.getValue()); } finally { try { if (fis != null) { fis.close(); } if (bos != null) { bos.close(); } } catch (IOException e) { // TODO log } } return sb.toString(); } /** * 根据刚刚生成的byte数组转换的String,生成文件 */ public static void creatFile(String fileContext, String fileName) throws AppException { BufferedOutputStream bos = null; FileOutputStream fos = null; File file = null; try { file = new File(fileName); File paraFile = file.getParentFile(); if (!paraFile.exists()) { paraFile.mkdirs(); } fos = new FileOutputStream(file); bos = new BufferedOutputStream(fos); String[] split = fileContext.toString().split(","); byte[] tt = new byte[split.length]; for (int i = 0; i < split.length; i++) { tt[i] = new Byte(split[i]); } bos.write(tt); } catch (Exception e) { throw new AppException(CommonEnum.IOERROR.getKey(), CommonEnum.IOERROR.getValue()); } finally { try { if (bos != null) { bos.close(); } if (fos != null) { fos.close(); } } catch (IOException e) { // TODO LOG } } }
相关推荐
### 使用RandomAccessFile流将一个文本文件读出并写入到另一个文件中的知识点解析 在Java编程语言中,`RandomAccessFile`类提供了一种非常灵活的方式来读取和写入文件。它支持随机访问,意味着我们可以直接跳转到...
本篇文章将深入探讨`String`与`Blob`在Java中的使用,以及如何进行写入和读出操作。 首先,`String`是Java中表示文本的基本数据类型,它以Unicode字符集存储数据。在处理字符串时,我们通常会用到`StringBuilder`或...
本篇将详细探讨如何使用C#将文件读取到数据中,并从数据库中读取出文件。 一、文件读取与二进制转换 在C#中,我们可以使用`System.IO`命名空间中的类来处理文件操作。例如,使用`FileStream`和`BinaryReader`来...
首先,我们需要了解Java中处理文件读写的基本类,比如`FileInputStream`和`FileOutputStream`。这两个类属于Java.io包,提供了读取文件和写入文件的方法。例如,`FileInputStream`类用于创建一个对象,通过这个对象...
在Java中,IO流分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流处理单个字节的数据,而字符流则处理Unicode编码的16位字符。 1. **字节流**: - `InputStream` 和 `OutputStream` 是所有...
在VB6(VB Visual Basic 6.0)中,处理超过2GB的大文件可能会遇到一些挑战,因为VB6的标准文件操作API(如Open、Input、Write等)在处理大文件时可能会受到限制。为了解决这个问题,我们可以利用Windows API中的`...
以下是一些关于如何在Java中读取PGM图像的关键知识点: 1. **PGM格式**:PGM文件分为两种类型,P2(ASCII格式)和P5(二进制格式)。P2是文本格式,图像数据以十进制形式存储;P5是二进制格式,数据以字节流存储,...
为了提高效率,可以先将文件内容读入内存中的`ByteArrayOutputStream`,然后一次性写入或读出。以下是一个简单的例子: ```java // 写入数据 public void fileWrite(FileOutputStream fos, String content) { byte...
在C++编程中,文件操作是一项基础且重要的任务。这里我们主要关注如何使用C++来读取文件,包括按行读取、按字节读取以及将文件内容存入数组中。下面将详细讲解这些知识点。 1. **按行读取文件**: 在C++中,可以...
Java I/O(输入/输出)是Java编程语言中非常重要的组成部分,主要用于处理文件、控制台以及网络连接等场景下的数据读写操作。Java I/O支持两种基本的数据类型:字节流和字符流。 - **目标**:Java I/O的主要目标...
在配置了 web.xml 文件后,需要编写 DownloadFile.java 类来处理文件下载。这个类继承自 HttpServlet,并重写 doGet 方法来处理 GET 请求。在这个方法中,需要读取文件流,并将其输出到响应流中。例如: ```java ...
总结起来,C#实现文字转语音并保存为MP3或WMA文件的关键在于理解和使用`System.Speech.Synthesis`命名空间中的类和方法。通过调整语速、选择合适的语音引擎,我们可以创建一个功能丰富的文字读报应用。如果你想要...
3. **限制(Limit)**:表示缓冲区中有效数据的数量,对于写操作,当位置达到限制时,就不能再写入数据了;对于读操作,则是从当前位置开始读取直到限制位置为止。 4. **标记(Mark)**:记录了一个位置,可以通过`reset...
在Android应用开发中,有时我们需要处理大量的数据,例如在本例中,为了解析加密和解密的.so文件,需要将大量的Byte数组处理成字符串。由于直接在代码中声明大型的Byte数组会导致编译错误,因此我们可以选择将这些...
一个完整的BMP格式位图文件由位图文件头和位图数据两部分组成。位图文件头的作用是存储图像的类型、尺寸、颜色深度等信息, 一般为位图文件的前54个字节;位图数据是整个位图文件的主体,一般都是从位图文件第55字节...
Java移动文件夹及其所有子文件与子文件夹是Java编程语言中的一种常见操作,在实际开发中经常会遇到这种需求。下面我们将详细介绍如何使用Java移动文件夹及其所有子文件与子文件夹。 移动文件夹及其所有子文件与子...
Open "文件路径及文件名" For Input As #gFileNum ' 以读出方式打开文件 Input #gFileNum, 用来放读取的内容的内存变量名 Close #gFileNum ' 关闭文件 ``` ### 知识点二:使用TextStream对象读取TXT文件 使用`...
要从文件" file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合? A A FileInputStream in=new FileInputStream("file.dat"); in.skip(9); int c=in.read();B FileInputStream in=new FileInputStream("file...
在建立了数据库表后,我们可以使用 JSP 文件将图片存储到数据库中。我们可以使用 HTML 表单将图片上传到 JSP 文件,然后使用 JSP 编程语言将图片存储到数据库中。例如,我们可以使用以下代码将图片存储到数据库中: ...
在C++编程中,获取JPEG图片的尺寸是一项常见的任务,特别是在图像处理或图形用户界面的应用中。JPEG(Joint Photographic Experts Group)是一种广泛使用的有损压缩图像格式,它能够有效地减少图片的存储空间。要...