我需要读出一个给定的包含 500000001 个二进制文件的大文件。之后我必须将它们翻译成 ASCII。
我的问题是在尝试将二进制文件存储在一个大数组中时发生的。我在数组 ioBuf 的定义处收到警告:
“int 类型的文字 16000000032 超出范围。”
我不知道如何保存这些数字以使用它们!有人有想法吗?
这是我的代码:
public byte[] read(){
try{
BufferedInputStream in = new BufferedInputStream(new FileInputStream("data.dat"));
ByteArrayOutputStream bs = new ByteArrayOutputStream();
BufferedOutputStream out = new BufferedOutputStream(bs);
byte[] ioBuf = new byte[16000000032];
int bytesRead;
while ((bytesRead = in.read(ioBuf)) != -1){
out.write(ioBuf, 0, bytesRead);
}
out.close();
in.close();
return bs.toByteArray();
}