我正在尝试在我的Android(Sony Experia Z3)上阅读一个体积适中的文件,它需要的时间比我希望的要长得多。我有以下代码:
DataInputStream dataIn = new DataInputStream(new BufferedInputStream(new FileInputStream(file)));
float[] values = new float[dataIn.available() / 4];
logInfo("Started");
long start = System.currentTimeMillis();
int i = 0;
while(dataIn.available() > 0) {
values[i++] = dataIn.readFloat();
}
double elapsed = (System.currentTimeMillis() - start) / 1000.0;
logInfo("elapsed time in seconds: " + elapsed + " floats read: " + values.length);
输出:
Started
elapsed time in seconds: 52.594 floats read: 3421669
该文件为17,1 MB,真的需要一分钟才能阅读?有没有办法改善表现?
修改
正如我发布的那样,我试图避免使用dataIn.available,突然间它只用了4秒。改变:
while(dataIn.available() > 0) {
要:
while(i < values.length) {
新结果:
elapsed time in seconds: 3.842 floats read: 3421669