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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-王康 中级黑马   /  2012-10-8 10:12  /  2150 人查看  /  4 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文


1、bufferedWriter
①为了提高写入的效率,使用了字符流的缓冲区。
FileWriter fw=new FileWriter(“buf.txt”);
BufferedWriter bufw=new BufferedWriter(fw); // 创建一个字符写入流的缓冲区对象,并和指定要被缓冲
的流对象相关联。
bufw.write(“...”); // 使用缓冲区的写入方法将数据写入到缓冲区中;
Bufw.flush(); //使用缓冲区的刷新方法将数据刷到目的地中;
bufw.close(); // 关闭缓冲区;并且也将流关闭了。
② newLine();

2、bufferedReader的

FileReader fr=new FileReader();
BufferedReader bufr=new BufferedReader(fr); // 创建一个缓冲区对象
String line=null;
While((line=bufr.readLine())!=null){ //}
② readLine();
③ bufr.read() ;这个read是从缓冲区中的读取字符数据。所以覆盖了父类中的read方法。
为了
④ bufr.readLine();到这步read()就可以操作缓冲区读取到的字符了,但是有根据文本行的特点,可以按照
行进行读取,于是有了新的方法readLine(); 于是也就有了一个临时容器来存储一行数据,但不包含换行符。

3、
① 不使用缓冲区来实现文件复制
private static final int BUFFER_SIZE = 1024;
public static void main(String[] args) throws IOException  {
  
  //用读取字符流实现文件复写
  FileReader fr=null;
  FileWriter fw=null;
  try{
   fr=new FileReader("1.txt");
   fw=new FileWriter("1_copy.txt");
   int len=0;
   char[] buf=new char[BUFFER_SIZE];
   while((len=fr.read(buf))!=-1){
    fw.write(buf,0,len);
   }
   
   
  }catch(IOException e){
   throw new RuntimeException("读写失败");
  }finally{   
   if(fw!=null)  //关闭源
    try{
    fw.close();
    }catch(IOException e){
     e.printStackTrace();
    }
   if(fr!=null)
    try{
     fr.close();
     }catch(IOException e){
      e.printStackTrace();
     }
  }
  
}
②用缓冲区字符流实现文件复写
  //用缓冲区字符流实现文件复写
  FileReader fr=new FileReader("demo.txt");
  BufferedReader bufr=new BufferedReader(fr);
  
  FileWriter fw=new FileWriter("demo_copy.txt");
  BufferedWriter bufw=new BufferedWriter(fw);
  
//  int ch=0;  //读写的第一种方式 使用读取一个字符进行操作
//  while((ch=bufr.read())!=-1){  //这是直接从内存的缓冲区读
//   bufw.write(ch);  // 这是往内存的缓冲区写
//  }
  String line=null;   //读写入的第二种方式 使用正行进行操作
  while((line=bufr.readLine())!=null){
   bufw.write(line);
   bufw.newLine();
   bufw.flush();
   
  }
  bufr.close();
  bufw.close();
4、LineNumberReader ——操作行号 的字符流对象

5、OutputStream ——字节流输出对象,用于操作文件。
   FileOutputStream fos=new FileOutputStream (“demo.txt”); //创建字节输出流对象,用于操作文件
   Fos.write(“output”.getBytes()); //写数据,直接写到目的地中
   Fos.cloase(); //关闭资源

4 个回复

倒序浏览
看看..........顶
回复 使用道具 举报
徐传任 发表于 2012-10-9 00:14
看看..........顶

:# , 谢谢围观哈。
回复 使用道具 举报
    来捧场了~~
回复 使用道具 举报
花裤头 发表于 2012-10-10 08:28
来捧场了~~

:'( 。感动呢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马