字符流Writer、缓冲字符流BufferedWriter、FileWriter常用方法

一、字符流:

                      读写时都是以字符为单位进行的。
             1:字符流的父类:
                               输出流:Writer
                              输入流:Reader
            2:OutputStreamWriter:是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。
                                               它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。
            3. 构造器如下:
                   1) 输出流的构造器: 
                              OutputStreamWriter(OutputStream os)
                              OutputStreamWriter(OutputStream os,String charset)
                   2) 输入流的构造器:
                              InputStreamReader(InputStream is)
                              InputStreamReader(InputStream is,String charset])
                  3)常用方法:

           close():关闭此流,但要先刷新它
           flush():刷新该流的缓冲。
           getEncoding(): 返回此流使用的字符编码的名称。 
           write(char[] cbuf, int off, int len) :写入字符数组的某一部分。 
           write(int c) :写入单个字符。 
           write(String str, int off, int len): 写入字符串的某一部分
           
  写出参数num的二进制的低十六位。
         * write(char[] ch):   
         * write(char[] ch,int startIndex,int length)
         * write(String str):写出字符串             
         * write(String str,int startIndex,int length)

  二、:缓冲字符流:

                     1)BufferedWriter--必须传一个字符流参数 ,  [ 字符输出缓冲流:  缓冲流-字符输出流-字节输出流]
                          定义: 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。 
                     2)构造器:
                            BufferedWriter bw=new BufferedWriter( new OutputStreamWriter(         
                                                                                        new FileOutputStream("b.txt",true) ,  "utf-8"  )  ) ;    
                            BufferedReader br=new BufferedReader( new InputStreamReader(
                                                                                         new   FileInputStream("b.txt"),"utf-8"));

例子:
    bw.write('王');
    bw.flush();//实时刷新到硬盘上 清空缓冲区的意思
    bw.write("从明".toCharArray());//6个
    bw.write("你好帅\r\n");
    bw.close();//流关闭前才会清空                  

             3)常用方法://可读取一行
            

            1)  int read():
                  * 返回一个字符的int数值
            2)read(char[] ch)
                  * 读取多个字符存入字符数组中
            3)readLine()
                  * 读取一行字符串,读不到数据返回null
            4)write(char ch)
                  * 作用:是写一个字符类型
            5)write(char[] ch)
                  * 作用:写出一个字符数组
            6)write(char[] ch,int startIndex,int length)
                  * 作用:写出一个固定长度的字符数组
            7)write(String str):
                  * 作用:写出一个字符串
            8)write(String str,int startIndex,int length)


         4).技巧:

* 一般都是PrintWriter和bufferedReader对应着使用。
         * PrintWriter这个类提供了自动刷新功能,
         * 要使用带ln的println的方法
         * 此类提供了很多个构造器:
         * 常用的两个:
         * PrintWriter(OutputStream so,boolean autoFlush)---字节流
         * PrintWrite(Writer wt,boolean autFlush)
         * 当autoFlush位true时,
         * 提供了自动刷新缓冲区的功能          
  PrintWriter pw=new PrintWriter( 
                     new FileOutputStream("c.txt",true),true);
   pw.println("世界你好");//流关闭前,一定会调用flush方法进行清空缓冲区。
   pw.flush();当构造器没有设置行刷新功能时,可以手动调此方法进行实时更新。
  

三、FileReader: --也有刷新功能,但是不自动换行

    1.构造器:
               FileReader(String filepath)
               FileReader(File file)
                                  相当于InputStreamReader和FileInputStream的结合

    FileWriter: 不自动换行
         1.构造器:
             FileWriter(File file,[boolean append])
             FileWriter(String filepath,[boolean append])
                              相当于OutputStreamWriter和FileOutputStream的结合(BufferedWriter)
           例:FileWriter fw=new FileWriter("a.txt",true);
            fw.write("asdfasdfa123121313214342112");
            fw.flush();
            fw.close();


   

 
 
 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值