A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 哈皮哈皮doge 初级黑马   /  2015-8-26 19:28  /  214 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 哈皮哈皮doge 于 2015-8-26 20:12 编辑
  1. import java.io.File;
  2. import java.io.FileReader;
  3. import java.io.FileWriter;


  4. public class TestReader {
  5.         public static void main(String[] args){
  6.                 File src = new File("1.txt");
  7.                 File des = new File("2.txt");
  8.                 FileReader reader = null;
  9.                 FileWriter writer = null;
  10.                 try{
  11.                         int ch =0;
  12.                         char[] chars = new char[10];//表示10个字符的数组
  13.                         reader = new FileReader(src);
  14.                         writer = new FileWriter(des);
  15.                         //ch的值表示输入流每次读到的字符的个数,不是字节数,也不是总个数,这个值可能不是每次都相等
  16.                         //例如:文本文件里头有11个字符(aaaaaaaaaab)因为这里chars的大小是10,所以要读2次,第一次读10个字符,第二次读1个字符,
  17.                         //因此,第一次读时ch=10第2次读时ch=1;
  18.                         //此外,第一次读时chars为aaaaaaaaaa,第二次读时chars为baaaaaaaaa,第二次因为只读了一个所以只是覆盖了chars的第一个字符,后面的不变
  19.                         while((ch=reader.read(chars))!=-1){
  20.                                 writer.write(chars,0,ch);//将每次读到的字符输出到目标文件,如果用write(chars)方法则会将chars中所有的字符都输出,这里用0,ch表示只需输出每次读到的字符
  21.                                 System.out.println(ch);//查看每次读了多少字符
  22.                                 System.out.print(new String(chars));//将chars输出到控制台
  23.                         }
  24.                 }catch(Exception e){
  25.                         e.printStackTrace();
  26.                 }finally{
  27.                         try{
  28.                                 if(reader!=null){
  29.                                         reader.close();
  30.                                 }
  31.                                 if(writer!=null){
  32.                                         writer.close();
  33.                                 }
  34.                         }catch(Exception e){
  35.                                 e.printStackTrace();
  36.                         }
  37.                 }
  38.         }
  39. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马