字符流(重写老师代码+个人笔记)

本文通过两个具体的Java程序示例介绍了如何使用字符流进行文件读取操作,包括逐字符读取和使用字符数组批量读取的方法,并对比了两种方式的效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package 字符流;
import java.io.*;
public class copy1 {


/**
* @param args
* 字节流  读取文件中的二进制,会把读取到的二进制数据,转换为你看得懂的字符
* 字符流  读取的也是是文件中的二进制数据,但他会将数据进行编码,或者是解码
* 字符流 = 字节流+编码/解码
* 输入字符流
*  ------Reader
*  ------------FileReader
*  使用步骤:
*  1.找到你要操作的目标文件的位置
*  2.建立数据连接的通道
*  3.读取
*  4.关闭
*  (和字节流的步骤一样,只是换了数据连接的通道)
* @throws IOException 
*  
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
readTest();
System.out.println("-------------------------------");
readTest1();
//一个字一个字读和一组一组读,显示的结果区别出来了
//一个字一个字读效率比一组一组的低,比如一颗颗吃糖和一把把吃糖的区别



}
public static void readTest()throws IOException{
//读取一个单个字符的方式,读取文件,效率较低
File file = new File("E:\\Program Files\\feiq\\Recv Files\\测试用的文件夹\\儿子\\ppp.txt");
FileReader fileReader = new FileReader(file);
int content = 0;
while((content = fileReader.read())!= -1)//如果文件未读完,是不会与有--1

{
//content的存在,只是为了接收fileReader.read()的返回值而已
System.out.println((char)content);
//每次读取的是一个字符,运行结果可以看出来,很明显一个字一个字地读取

}
fileReader.close();
}
//下面是用字符数组,来读取文件
public static void readTest1() throws IOException{
File file = new File("E:\\Program Files\\feiq\\Recv Files\\测试用的文件夹\\儿子\\ppp.txt");
FileReader fileReader = new FileReader(file);
//创建char类型的数组,然后读取的数据。是在这个数组中进行的存储的
//???不太懂,个人认为一个字一个字读也挺好的
char [] cbuf = new char[1024];
int length = 0;
while((length = fileReader.read(cbuf))!=-1){

//char类型的数组可以转为字符串,下面是字符数组转换成字符串的方法吧
String str = new String(cbuf,0,length);
System.out.println(str);

}
fileReader.close();

}


}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值