现在我正在尝试从文件中打印字节,它在小文件中工作正常,但是当我使用千兆字节范围内的文件时,我得到一个异常说“OutOfMemoryError 请求的数组大小超过 VM” 通常我会使数组更小但是这个来自我无法控制它输出的方法。
这是原始代码:
public void convertToBytes()
{
try
{
for(byte binary:Files.readAllBytes(getCompressPath))
{
System.out.println(binary);
}
}
catch(IOException io)
{
System.out.println("An IO exception occured.");
}
catch(OutOfMemoryError noMemory)
{
System.out.println("Out of heap memory");
}
}//End of Method.
我已经尝试在 for 循环中嵌套循环。我也尝试过像这样使用 ByteBuffer 类:
public void convertToBytes()
{
try
{
ByteBuffer b = ByteBuffer.allocate(10);
b.put(Files.readAllBytes(getCompressPath()));
for(byte binary:b.array())
{
System.out.println(binary);
}
}
catch(IOException io)
{
System.out.println("An IO exception occured.");
}
catch(OutOfMemoryError noMemory)
{
System.out.println("Out of heap memory");
}
}//End of Method.
我所做的一切都会导致内存不足错误。