【发布时间】:2016-09-08 20:10:44
【问题描述】:
所以我一直在尝试制作一个将文件输入字节数组的小程序,然后它将该字节数组转换为十六进制,然后是二进制。然后它将使用二进制值(我还没想到当我到达这个阶段时要做什么),然后将其保存为自定义文件。
我研究了很多互联网代码,我可以将文件转换为字节数组和十六进制,但问题是我无法将大文件转换为字节数组(内存不足)。
这是不是完全失败的代码
public void rundis(Path pp) {
byte bb[] = null;
try {
bb = Files.readAllBytes(pp); //Files.toByteArray(pathhold);
System.out.println("byte array made");
} catch (Exception e) {
e.printStackTrace();
}
if (bb.length != 0 || bb != null) {
System.out.println("byte array filled");
//send to method to turn into hex
} else {
System.out.println("byte array NOT filled");
}
}
我知道流程应该如何进行,但我不知道如何正确编码。
有兴趣的流程:
- 使用
File输入文件 - 逐块读取文件到字节数组中。前任。每个字节数组记录包含 600 个字节
- 发送该块以转换为十六进制值 -->
Integer.tohexstring - 发送该十六进制值块以制成二进制值 -->
Integer.toBinarystring - 搞乱二进制值
- 逐行保存到自定义文件
问题:: 我不知道如何将一个巨大的文件逐块转换为字节数组进行处理。 任何和所有的帮助将不胜感激,感谢您的阅读:)
【问题讨论】:
-
文件有多大?
-
大约 7GB
-
看
FileInputStream#read(byte[] b)。然后你可以指定一次读取多少字节。 -
如果我问的不是太多,你能举一些例子吗?甚至是一个示例的链接,我阅读了它,但我不确定如何准确地实现它。 :)
标签: java