java io类filereader,39. Java IO: FileReader

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

FileReader类(java.io.FileReader),可以基于字符流来读取文件内容。它的工作机制类似于FileInputStream,但是FileInputStream是读取字节。换句话来说,FileReader的意图是读取文本。一个字符可能对于一个或多个字节,这取决于字符的编码格式。

FileReader例子

下面是Java FileReader的简单例子:

Reader fileReader = new FileReader("c:\\data\\input-text.txt");

int data = fileReader.read();

while(data != -1) {

//do something with data...

doSomethingWithData(data);

data = fileReader.read();

}

fileReader.close();

例子首先创建了一个FileReader,并且在构造方法传入了一个文件路径。然后,从FileReader每次读取一个字符并读取了所有的内容,最后,将FileReader关闭。

注意:上面例子省略了必要的异常处理,更多的关于异常处理的内容,可以参考“Java IO Exception Handling”。

read()

FileReader的read()方法返回了一个int值,此值为读取的字符值。如果方法返回 -1,则代表数据已经读取完毕。

FileReader字符编码

FileReader假设你想以计算机的默认编码格式来解码文件中的字节。这并不一定是你想要的,你也改不不了这个。

如果你想指定一个不同的编码格式,就不要用FileReader了。可以在FileInputStream上使用InputStreamReader。InputStreamReader可以让你指定编码格式去读取文件的字节。

关闭FileReader

当你从FileReader读取完字符之后你要记得去关闭它。关闭FileReader可以调用close()方法。可以像下面这样来使用:

fileReader.close();

你也可以使用java 7中的 try-with-resources 结构。下面是如何使用try-with-resources来关闭流:

try(FileReader fileReader =

new FileReader("c:\\data\\text.txt")){

int data = fileReader.read();

while(data != -) {

System.out.print((char) data));

data = fileReader.read();

}

}

注意上面例子并没有调用close()方法。try-with-resources 结构会考虑这个的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值