JAVA---字符流(字符输入流Reader和字符输出流Writer)

JAVA—字符流(字符输入流Reader和字符输出流Writer)

文件字符输入流FileReader:
使用步骤:

1.创建FileReader对象,构造方法中绑定要读取的数据源(String类型的路径或者File对象)

2.使用FileReader的方法read读取文件,返回字符

3.释放资源,关流

一次读取一个字符
FileReader fr = new FileReader("D:\\IdeaProjects\\javaSE\\IO流\\a.txt");
int len = 0;    //返回字符,读到末尾返回-1
while ((len = fr.read()) != -1){
    System.out.print((char)len);  //将读取到的字符进行强转
}
fr.close();
一次读取多个字符
FileReader fr = new FileReader("D:\\IdeaProjects\\javaSE\\IO流\\a.txt");
char[] chars = new char[1024];  //存储读取到的多个字符
int len = 0;       //len记录的是每次读取的有效字符个数
while ((len = fr.read(chars)) != -1){
    System.out.println(new String(chars,0,len));  //将字符数组转换成字符串并输出,从0开始到有效字符len 
}
文件字符输出流FileWriter:
使用步骤:

1.创建FileWriter对象,构造方法中绑定要写入数据的目的地(String类型的路径或者File对象)

2.使用FileWriter中的方法write,把数据写入到内存缓冲区中(字符转换成字节的过程)

3.使用FileWriter中的flush方法,把内存缓冲区中的数据,刷新到文件中

4.关流释放资源(关流也可把数据刷新到文件中)

FileWriter fw = new FileWriter("D:\\IdeaProjects\\javaSE\\IO\\a.txt");
fw.write(97);   //写入97的字符
//fw.flush();     //将数据从内存刷新到文件中
fw.close();   //关流,关流前也把数据刷新到文件中
/*
flush和close的区别:
fulsh:刷新缓冲区,流对象可以继续使用
close:先刷新缓冲区,然后通知系统释放资源,流对象不可以再使用
*/
字符输出流写入字符数组
FileWriter fw = new FileWriter("D:\\IdeaProjects\\javaSE\\IO\\b.txt");
char[] chars = {'你', 'b', 'c', 'd'};
fw.write(chars);
fw.close();
字符输出流写入指定的字符数组
FileWriter fw = new FileWriter("D:\\IdeaProjects\\javaSE\\IO\\b.txt");
char[] chars = {'你', 'b', 'c', 'd'};
fw.write(chars,1,3);    //参数1:字符数组 参数2:起始索引 参数3: 字符个数
fw.close();
字符输出流写入字符串
FileWriter fw = new FileWriter("D:\\IdeaProjects\\javaSE\\IO\\b.txt");
//写入字符串
fw.write("传智播客");
fw.write("你好啊java",2,2);  参数1:字符串 参数2:起始索引 参数3: 字符个数
fw.close();
字符输出流的续写和换行
//构造方法传入true,就是续写  传false或不传就是覆盖写
FileWriter fw = new FileWriter("D:\\IdeaProjects\\javaSE\\IO\\b.txt",true);
fw.write("黑马");
//换行 windows: \r\n  Linux:/n  mac  /r
fw.write("黑马" + "\r\n");  //换行写
fw.write("黑马" + "\r\n");
fw.write("黑马" + "\r\n");
fw.close();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值