15. Java IO: FileInputStream

想要查看此教程的目录请点击:Java IO教程目录贴地址


使用FileInputStream可以以字节流的形式来读取文件内容。FileInputStream是InputStream的子类,所以你可以使用FileInputStream像InputStream一样。

FileInputStream例子

下面是一个简单的例子:

InputStream input = new FileInputStream("c:\\data\\input-text.txt");

int data = input.read();
while(data != -1) {
  //do something with data...
  doSomethingWithData(data);

  data = input.read();
}
input.close();

注意:为了保证代码思路清晰,这里并没有考虑异常处理的情况。

FileInputStream的构造方法

FileInputStream提供了三种构造方法来创建一个实例。我会在这里先介绍前两个。

第一个构造方法有一个String类型的参数。这个参数是指你想要读取的文件路径。下面是一个例子:

String path = "C:\\user\\data\\thefile.txt";

FileInputStream fileInputStream = new FileInputStream(path);

注意路径字符串。他需要两个“\”来生成一个“\”。因为“\”在Java中是转义字符。所以你想写一个“\”就得用两个“\”来表示。

在linux或unix中,文件的路径像下面这样:

String path = "/home/jakobjenkov/data/thefile.txt";

注意使用常规的分隔符(/)来作为目录分隔符。这是如何在linux或unix上写文件路径。实际上,以我的经验,Java应该也理解你在windows上用"/"作为路径分隔符,类似这样的:c:/user/data/thefile.txt,但是别听我的,你去你的系统上测试一下。

第二个构造方式是提供一个File类型的参数。这个参数你可以传入你想要读取的文件:

String path = "C:\\user\\data\\thefile.txt";
File   file = new File(path);

FileInputStream fileInputStream = new FileInputStream(file);

具体选用哪个构造函数,这取决于你有什么。如果你已经有一个String或File,那么只要用相应的就好了。将String转为File或者将File转为String,并没有太大的区别。

read()

FileInputStream的read()方法会返回一个int值,它是读取的字节。如果返回 -1,那么说明已经读取完毕。-1是int值,而不是一个byte值,这里可是不一样的。这个方法和InputStream中的read()使用是一样的。

read(byte[])

FileInputStream也有两个read()方法,使用的的方式也是和InputStream章节是一样的。

close()

和其他的InputStream一样,FileInputStream也需要在使用后关闭,调用close()方法即可。至于异常处理,可以参考相关的异常处理章节。

你可能感兴趣的:(15. Java IO: FileInputStream)