首页 > 代码库 > java文件读取

java文件读取

java文件读取

刚开始用java,作为之前C语言的重度使用者,发现以前熟悉的文件读取file.read()java.io.File类里找不到了。替代之的是java.io.InputStream, InputStream为一个I/O操作的抽象类,其中FileInputStream:read实现了读取文件的方法

File f = new File(fileName);
InputStream in = new FileInputStream(f);
byte data[] = new byte[1024];
int nReadCount = 0;
while (nReadCount < 1024) {
    nReadCount += in.read(data, nReadCount, 1024 - nReadCount);
}

上面的例子中, FileInputStream:read并不保证一次性能读完1024字节,因此加了个while循环。

到此为止,这就完成了和C语言里file.read()的全部功能。

一个字节一个字节的读,未免太C-Style了,当然java不止这么多,java提供了一个包装类BufferedInputStream,此类的read方法内部实现了缓存,不管读多少字节,性能影响都不会很大:

BufferedInputStream in = new BufferedInputStream(new FileInputStream(f));
in.read();
byte data[] = new byte[1024];
in.read(data);
  • 参考Introduction to Java InputStreams

java文件读取