把输入的字符按照反着顺序输出_第十章 输入、输出流(4)——文件字符输入、输出流...

文件字符

输入、输出流

文件字节输入、输出流的read和write方法使用字节数组读写数据,即以字节为单位处理数据。因此,字节流不能很好地操作Unicode字符,例如,一个汉字在文件中占用两个字节,如果使用字节流,读取不当会出现“乱码”现象。

与FileInputStream、FileOutputStream字节流相对应的是FileReader、FileWriter字符流(文件字符输入、输出流),FileReader和FileWriter分别是Reader和Writer的子类,其构造方法分别是:

FileReader(String filename); FileReader(File filename);FileWriter(String filename); FileWriter(File filename);FileWriter(String filename,boolean append); FileWriter(File filename,boolean append);

字符输入流和输出流的read和write方法使用字符数组读写数据,即以字符为基本单位处理数据。

下面的例子6使用文件字符输入、输出流将文件a.txt的内容尾加到文件b.txt中。

import java.io.*;public class Example6 {  public static void main(String[] args) {    File sourceFile = new File("a.txt"); //读取的文件    File targetFile = new File("b.txt"); //写入的文件    char c[] =new char[19];              //char型数组    try {      Writer out = new FileWriter(targetFile,true); //指向目的地的输出流       Reader in = new FileReader(sourceFile);       //指向源的输入流      int n=-1;      while((n=in.read(c))!=-1) {        out.write(c,0,n);      }      out.flush();      out.close();    }    catch(IOException e) {      System.out.println("Error "+e);    }  }}

左右滑动或点击查看全图

注:对于Writer流,write方法将数据首先写入到缓冲区,每当缓冲区溢出时,缓冲区的内容被自动写入到目的地,如果关闭流,缓冲区的内容会立刻被写入到目的地。流调用flush()方法可以立刻冲洗当前缓冲区,即将当前缓冲区的内容写入到目的地。

e93e3511547ffe9ab1c72434f6436d31.png bcabb63505c86d377b401a472926f5bd.png e93e3511547ffe9ab1c72434f6436d31.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值