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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

java.io.BufferedReader和java.io.BufferedWriter类各拥有8192字符的缓冲区。当BufferedReader在读取文本文件时,会先尽量从文件中读入字符数据并置入缓冲区,而之后若使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。
  1. public static void main(String[] args) throws Exception{

  2.    
  3. 1   File file = new File("d:\\test\\20150401_001");
  4. 2  File fil1 = new File("d:\\test\\20150401_001");
  5. 3  BufferedReader       reader = new BufferedReader( new FileReader( file));
  6. 4  BufferedWriter       writer = new BufferedWriter( new FileWriter( fil1));
  7.     StringBuffer         buffer = new StringBuffer();
  8.     String tmp = reader.readLine();
  9.         while( tmp != null ){
  10.             buffer.append(tmp.trim() + "\n");
  11.         tmp = reader.readLine();
  12.         }
  13.     System.out.println(buffer.toString());

  14.     }
复制代码




当3,4行代码执行时,第4行代码会把路径下的文件设置为空文件。后面代码while不再进入,打印出来为'';
如果想对一个文件进行操作,输出后文件路径,文件名保持不变,应该如例:

  1. BufferedReader       reader = new BufferedReader( new FileReader( new File(fileName)));
  2.       
  3.         
  4.         StringBuffer         buffer = new StringBuffer();
  5.         
  6.         String tmp = reader.readLine();
  7.         while( tmp != null ){
  8.             buffer.append(tmp.trim() + "\n");
  9.         tmp = reader.readLine();
  10.         }
  11.         BufferedWriter       writer = new BufferedWriter( new FileWriter( new File(fileName)));
  12.       
  13.         writer.write( );
复制代码



2 个回复

倒序浏览
x写的很详细,顶一个
回复 使用道具 举报
总结的不错噢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马