使用java ,如何把指定长度的字节写入文件呢,或者说如何从inputStream 中读取指定长度的字节写入outputStream中呢?
/*** * write inputstream into file according to specified length. * * @param file * @param ins * : not closed * @param length2 * @throws IOException */ public static FileOutputStream writeInputStream2File(File file, InputStream ins, long length2, boolean isCloseOutputStream) throws IOException { String parentDir = SystemHWUtil.getParentDir(file.getAbsolutePath()); File fatherFile = new File(parentDir); if (!fatherFile.exists()) { fatherFile.mkdirs(); } FileOutputStream outs = new FileOutputStream(file); int readSize; byte[] bytes = null; bytes = new byte[(int) length2]; long length_tmp = length2; while ((readSize = ins.read(bytes)) != SystemHWUtil.NEGATIVE_ONE/*-1*/) { length_tmp -= readSize; outs.write(bytes, 0, readSize); if (length_tmp == 0) { break; } //非常重要,千万不能去掉!!! if (length_tmp < SystemHWUtil.BUFF_SIZE/*4096*/) { bytes = new byte[(int) length_tmp]; } } outs.flush(); if (isCloseOutputStream) { outs.close(); } return outs; } /*** * Not responsible for closing the output and input stream 写入指定长度的字节到输出流 * * @param fin * @param fout * : The divided file * @param length2 * @throws IOException */ public static void writeFromFile2File(InputStream fin, OutputStream fout, long length2) throws IOException { if (length2 == 0) {// want to write zero bytes // if (fout != null) { // fout.close(); // } return; } int readSize; byte[] bytes = null; if (length2 >= SystemHWUtil.BUFF_SIZE) { bytes = new byte[SystemHWUtil.BUFF_SIZE]; } else { bytes = new byte[(int) length2]; } long length_tmp = length2; while ((readSize = fin.read(bytes)) != SystemHWUtil.NEGATIVE_ONE) { length_tmp -= readSize; fout.write(bytes, 0, readSize); if (length_tmp == 0) { break; } //非常重要,千万不能删除 if (length_tmp < SystemHWUtil.BUFF_SIZE) { bytes = new byte[(int) length_tmp]; } } } /*** * Responsible for closing the output stream * * @param fin * @param outPutFile * @param length2 * :The number of bytes to be written * @param append * : Whether additional * @throws IOException */ public static void writeFromFile2File(FileInputStream fin, File outPutFile, long length2, boolean append) throws IOException { if (length2 == 0) {// want to write zero bytes return; } FileOutputStream fout = null; try { fout = new FileOutputStream(outPutFile, append/* 追加 */); } catch (FileNotFoundException e1) { e1.printStackTrace(); } try { writeFromFile2File(fin, fout, length2); } catch (IOException e) { e.printStackTrace(); } finally { fout.flush(); fout.close();// Close the stream } }
上述代码见附件中io0007-find_progess\src\main\java\com\io\hw\file\util\FileUtils.java
依赖的包:is_chinese-0.0.2-SNAPSHOT.jar
参考:http://hw1287789687.iteye.com/blog/2023095
写入文件:
/*** * 写入文件 * @param content * @param charset * @param readAndWriteResult * @param file * @throws IOException */ private static void writeStubFile(String content, String charset, File file) throws IOException { FileWriterWithEncoding fileW = new FileWriterWithEncoding(file, charset); fileW.write(content); fileW.close(); }
相关推荐
在易语言中,处理文件操作是一项基础且重要的任务,而“读写文件到字节集”则是这一任务的具体体现。字节集是易语言中用来存储二进制数据的数据类型,它在处理文件、网络传输或者内存操作时非常有用。 1. **字节集...
在实验中,首先读取整个文件到一个字节数组`bytes`中,然后通过`Backward`方法倒序数组内容,最后将倒序后的字节数组写回文件。 6. **数组倒序**:`Backward`方法通过遍历数组的前半部分,与后半部分相应位置的元素...
4. 文件写入操作:在with语句之后的代码块中,f.write(content)用于将编码后的字节串写入到文件中。在Python中,写入文件的操作是通过打开文件对象的write()方法来完成的。 5. 使用注释#encoding=utf-8:这是一种非...
总的来说,Python提供了强大的文件处理能力,通过灵活运用`open()`、`seek()`、`tell()`、`read()`和`close()`等方法,我们可以高效地处理各种文件读取需求,包括读取指定字节长度的文本。了解并掌握这些方法,对于...
2. **打开文件**:使用`Open`方法指定文件路径、打开模式和访问权限。例如,我们要写入文件,可以这样设置: ```cpp file.Open("output.txt", CFile::modeCreate | CFile::modeWrite); ``` 这里`"output.txt"`是...
在这个“易语言读写文件到字节集源码.7z”压缩包中,包含的是使用易语言实现的读取文件内容并将其转换为字节集,以及将字节集写回文件的功能的相关源代码。 在计算机编程中,字节集(Byte Array)是一种常见的数据...
在这个场景中,我们关注的是如何使用MFC来处理字符文件,特别是进行格式化,确保文件内容按指定长度排列,包括中文字符。 首先,我们需要理解字符编码。在处理中文字符时,通常会用到UTF-8编码,因为它能很好地支持...
### Java下载文件到指定路径(不打开窗口) #### 概述 本文档主要介绍如何使用Java编程语言实现从网络上下载文件并将其保存至本地指定路径的功能,且在执行过程中不会弹出任何用户界面窗口。这种方法非常适合后台...
在PHP中,使用`fopen()`函数打开文件并指定写入模式(如`'w'`、`'a'`、`'w+'`或`'x'`等)来创建或打开一个文件流。例如: ```php $fp = fopen('filename.txt', 'w'); // 打开文件用于写入,如果文件存在,内容将被...
在Python中,`file.write(item)`写入数据,`file.seek(0, 2)`移动文件指针到文件末尾,然后加上40(每个条目的长度)来开始写入下一行。 3. **读取文件**:当需要恢复列表框数据时,我们需要从文件中读取数据并将其...
- 在处理大文件时,避免一次性加载整个文件到内存,可以分块读取和写入,以减少内存消耗。 - 文件操作过程中要注意错误处理,确保文件能正确打开、读取和关闭,防止因文件异常导致程序崩溃。 通过理解易语言中对...
在读取BIN文件时,我们需要创建一个`FileStream`实例,指定文件路径和访问模式(例如,`FileMode.Open`表示打开现有文件)。 ```csharp using System.IO; // 创建FileStream对象 FileStream fileStream = new ...
这段代码创建了一个名为`binaryFile.bin`的二进制文件,并写入了5个字节的数据。`FileMode.Create`参数表示如果文件已存在,则覆盖,如果不存在,则创建新文件。 接下来是二进制文件的读取操作: ```csharp using ...
然后是使用E2Read函数从EEPROM的指定地址开始读取指定长度的数据,并将这些数据转换成字符串显示在LCD上。接着,程序通过一个循环逐个修改数组中的字节值,并用修改后的数据重新写入EEPROM。这里就涉及到对EEPROM...
对于大型文件,可能需要分块读取,以避免一次性加载整个文件到内存。此外,如果文件包含二进制数据,可能需要使用不同的方式解析和查找数据。 总结,VB.NET中查找文件中指定位置的数据主要依赖于`FileStream`类的`...
易语言中的`字节集长度`函数可以获取字节集的大小,`取字节集字节`函数可以获取指定位置的字节。 3. **16进制转换**:对每个字节进行16进制转换。在易语言中,可以使用`十六进制字符串`函数将字节转换成16进制字符...
例如,使用“读文件到字节集”命令可以读取文件内容到字节集中,而“写字节集到文件”则可以将字节集的内容写入文件。 六、字节集在网络通信中的作用 在网络通信中,字节集用于封装和解析协议数据。易语言的“发送...
而"字节集替换"则用于在找到的位置开始,将指定长度的字节替换为新的字节集。 具体步骤可能如下: 1. 定义源字节集变量,存储需要处理的数据。 2. 使用“字节集查找”命令,查找源字节集中特定的字节序列,获取其...
1. **创建字节集**:使用`创建字节集`命令可以创建一个空的字节集,或者根据指定长度和初始值创建字节集。 2. **插入字节集**:`在字节集中插入字节`命令允许你在字节集的特定位置插入一个或多个字节。 3. **删除...