Java文件到字节数组快速1
我想把一个文件读入字节数组。所以,我用以下方法阅读:
int len1 = (int)(new File(filename).length());
FileInputStream fis1 = new FileInputStream(filename);
byte buf1[] = new byte[len1];
fis1.read(buf1);
然而,它确实非常缓慢。有谁能告诉我一个非常快速的方法(可能是最好的方法)将文件读入字节数组吗。如果需要,我也可以使用java库
编辑:是否有更快的基准(包括库方法)
# 1 楼答案
它不是很慢,至少没有办法让它更快。但这是错误的。如果文件足够大,方法
read()
将不会返回第一次调用的所有字节。此方法将其管理读取的字节数作为返回值返回正确的方法是在循环中调用此方法:
将其称为:
类似的东西在很多包中都有实现,例如@Andrey Borisov(+1)提到的
FileUtils.readFileToByteArray()
编辑
我认为,在你的例子中,缓慢的原因是你创建了如此巨大的数组。你确定你真的需要它吗?试着重新思考你的设计。我相信您不必将该文件读入数组,并且可以增量处理数据