逐字节读取文件,然后每n个字节执行一些操作

sik*_*kas 0 java java-io

我想知道如何逐字节读取文件,然后每n个字节执行一些操作。

例如:

说我有一个文件size = 50 bytes,我想将其分成几个块n bytes。然后,将每个块发送给函数,以对这些字节执行某些操作。块将在读取过程中创建,并在块达到n字节时发送到函数,这样我就不会使用太多内存来存储所有块。

我希望将函数的输出写入/附加在新文件上。

这是我读过的书,但我不知道它是对的:

fc = new JFileChooser();
File f = fc.getSelectedFile();
FileInputStream in = new FileInputStream(f);
byte[] b = new byte[16];
in.read(b);
Run Code Online (Sandbox Code Playgroud)

对于写过程,我还没有做任何事情。

Ada*_*ski 5

您处在正确的位置。考虑使用来包装您FileInputStreamBufferedInputStream,通过分块读取文件来提高I / O效率。

下一步是检查读取的字节数(由读取调用返回),并将数组移交给处理函数。显然,如果仅部分填充数组,则还需要将读取的字节数传递给此方法。