对与I/O流提供的FileInputStream读取文本的数据,而其是采用字节的形式进行读取输出到工作平台,这样会导致读取的不方便,并不能以字符的形式表示。
因此,java提供了另外一种读取的形式---字符流。该种方式能够更好的将我们的文本以字符串的形式展示,方便自己读取。
点击下方链接,免费获取java编程资料!
同字节流一样,字符流也有两个抽象的顶级父类,分别是Reader和Writer。其中,Reader是字符输入流,用于从某个设备源中读取字符。Writer是字符输出流,用于向某个设备写入字符。Reader与Writer都是字符流顶级的父类,它下面有许多子类都是在其父类的基础上继承如:BufferedReaderCharArrayReaderInputStreanReaderPipedReader等。
在程序的开发过程之中,经常会遇到对文本的内容进行读取,这里采用FileReader进行对文本读取一个或者一组数组。
接下来,通过实际案例来分析讲解。
首先,你需要在自己的目录下建立一个文本,可以是txtdocx,但是需要注意,如果你读取docx工作台会显示一堆乱码的数据,但是读取txt文本时不会出现这个问题。在目录的选择上,可以自己随意建立在方便自己找到文本的地方,把相应的路径输入进去就可以了。
案例程序代码如下:
/*********************************************
项目:字符流读取文件中的字符串
方法:FileReader/reader
时间:2021.1.25
********************************************/
public class ReaderTemp {
public static void main(String[] args) throws Exception {
//创建FileReader对象,指定要读取的文件
FileReader fileReader=new FileReader("C:UsersasusDesktop新建文本文档.txt");
//定义一个int类型的变量length,并令其等于零
int length=0;
//通过循环来判断是否读取到文件的末尾
while((length=fileReader.read())!=-1) {
//输出读取到的字符
System.out.print((char)length);
}
//关闭流
fileReader.close();
}
}
输出结果:
今天我去加分加分分节符你的
飞机欧赔积分
oprwjgpw和公婆积分
该片根据吗
上述结果实现了读取文件的功能问题,首先创建一个FileReader对象来读取指定文件文本的内容,然后通过whie循环每次从文件中读取一个字符并打印,这样就实现了文件文本的字符读取。
由于字符输入流的read()方法返回是 int类型的值,如果想要获得字符内容需要进行强制转换,所以输出语句中将变量length强制转化为char类型。