相关疑难解决方法(0)

711
推荐指数
20
解决办法
100万
查看次数

Byte []和java.lang.OutOfMemoryError按位读取文件

我正在尝试编写一个按位读取文件的阅读器,但我对大文件有问题.我尝试用100 mb读取文件,花了3分钟但是它有效.

然而,然后我尝试了500 MB的文件,但它甚至没有开始.因为这条线:

byte[] fileBits = new byte[len];
Run Code Online (Sandbox Code Playgroud)

现在我正在寻找苏打,找不到任何东西.也许有人解决了它,可以分享一些代码,提示或想法.

if (file.length() > Integer.MAX_VALUE) {
    throw new IllegalArgumentException("File is too large: " + file.length());
}

int len = (int) file.length();
FileInputStream inputStream = new FileInputStream(file);

try {
    byte[] fileBits = new byte[len];
    for (int pos = 0; pos < len;) {
        int n = inputStream.read(fileBits, pos, len - pos);
        if (n < 0) {
            throw new EOFException();
        }
        pos += n;
    }

inputStream.read(fileBits, 0, inputStream.available());
inputStream.close();
Run Code Online (Sandbox Code Playgroud)

java memory file-io file

4
推荐指数
1
解决办法
2199
查看次数

标签 统计

file-io ×2

java ×2

file ×1

memory ×1