java随机访问文件性能测试比较
测试程序:
?
?
?
import java.io.File;
import java.io.RandomAccessFile;
?
public class RandomAccessFiletest {
static int block = 1024;
static int[] block_ = { 1 * block, 2 * block, 4 * block, 8 * block, 16 * block,
32 * block, 64 * block, 128 * block, 256 * block, 512 * block, 1024 * block,
2 * 1024 * block, 4 * 1024 * block, 8 * 1024 * block, 16 * 1024 * block,
32 * 1024 * block, 64 * 1024 * block, 128 * 1024 * block, 256 * 1024 * block };
?
public static void main(String[] args) throws Exception {
?
//
for (int i = 1; i < block_.length; i++) {
block = block_[i];
long l = System.currentTimeMillis();
testRead();
System.out.println(block + "" + (System.currentTimeMillis() - l));
}
}
?
private static void testRead() throws Exception {
File file = new File("e:\\a.ss");// exxe.sql.bak
long size = file.length();
RandomAccessFile accessFile = new RandomAccessFile(file, "r");
byte[] b = new byte[block];
long length = Math.round(size / block);
long position = 0;
for (long i = 0; i < length; i++) {
accessFile.read(b);
position += block;
if (position <= size) {
accessFile.seek(position);
}
// System.out
// .println(position + "-" + block + "-" + size + "-" + (size - position));
?
// String str=new String(b);
}
accessFile.close();
}
}