想要查看此教程的目录请点击: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()方法即可。至于异常处理,可以参考相关的异常处理章节。
网友评论