Java中IO流-23-字符流FileReader类

前面学习了字节流操作,现在开始学习字符流操作。字符流操作也很简单,还是基于前面介绍的核心6行代码。什么是字符流呢,我们知道任何数据存储在计算机上都是以二进制字节存储。字符流是可以直接读写字符的IO流。字符流读写字符,先是读取到字节,把字节转换成字符,如果要写出字符流,也是先把字符转换字节再写出。

1. FileReader类,读取一个字符

在API文档,搜索找到FileReader类,可以看到它直接父类是InputStreamReader,FileReader类本身没有几个方法,下面我们就来写一个简单的练习,读取一个txt文件里面的内容,这次我们内容是中文。提前手动创建一个abc.txt,内容是“你好,中国。”,先来读取一个字符代码。

package io;

import java.io.FileReader;
import java.io.IOException;

public class Demo1_FileReader {

	public static void main(String[] args) throws IOException {
		
		FileReader fr = new FileReader("abc.txt");
		
		int x = fr.read();
		//每次读取一个字符
	    System.out.println(x);
	    char c = (char)x;
	    System.out.println(c);
		
		fr.close();

	}

}

运行出来是:

20320
你

这里需要解释一下,你自己环境看到的运行结果可能不是20320, 这个FileReader类是根据你本地环境的字符集编码表来进行转换的。我的Eclipse当前Project下属性的编码是用UTF-8,如果你是GBK,这个数字会和我不一样、

读取全部字符

字符流读取,循环条件也是read()方法返回不等于负一。

package io;

import java.io.FileReader;
import java.io.IOException;

public class Demo1_FileReader {

	public static void main(String[] args) throws IOException {
		
		FileReader fr = new FileReader("abc.txt");
		
		int x;
		while ( (x = fr.read()) != -1) {
			System.out.print((char)x);
		}
		
		fr.close();

	}

}

运行结果,显示 “你好,中国。”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值