我想知道如何逐字节读取文件,然后每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)
对于写过程,我还没有做任何事情。
您处在正确的位置。考虑使用来包装您FileInputStream的BufferedInputStream,通过分块读取文件来提高I / O效率。
下一步是检查读取的字节数(由读取调用返回),并将数组移交给处理函数。显然,如果仅部分填充数组,则还需要将读取的字节数传递给此方法。