字符输入输出流(3种)、System类

二、字符输入输出流(Writer/Reader):(3种)
               在输出输入操作时,以字符为单位进行操作,默认是unicode编码集.
               字符流的抽象父类分别是:
                                Writer/Reader
      Writer提供了字符输出流的常用方法:
                 void close(): 关闭 
                 void write(char[] cbuf): 写一个字符数组
                 void write(char[] cbuf, int off, int len): 写一个字符数组的一部分 
                 write(int c): 写一个字符
                 write(String str): 写一串字符
                 write(String str, int off, int len): 写字符串的一部分 
      Reader提供了字符输入流的常用方法:
            int read():            读一个字符,存储到int的低16位
            int read(char[] cbuf): 将数据读进字符数组中,返回的是读取的有效字符个数
            int read(char[] cbuf, int off, int len): 将字符读入数组的一部分
========================================================================
  1.子类中转换流:       (高级流)
    --OutputStreamWriter:
                                将字符转换成字节写出到硬盘上
           构造器:          
                       OutputStreamWriter(OutputStream out):
                                        创建一个指定字节输出流的字符输出流对象,采用的是系统默认的编码集 
                       OutputStreamWriter(OutputStream out, Charset cs): 
                       OutputStreamWriter(OutputStream out, CharsetEncoder enc): 
                       OutputStreamWriter(OutputStream out, String charsetName):
                                        创建一个指定字节输出流的字符输出流对象,采用指定编码集 
    
                       write(int a):
                                       当a的低16位,如果被设计成相应的字符时,如果两个字节都是
                                       有效字节,会写出两个。如果低16位对应是无效字符,或是有效
                                       字节只有一位时,会写一个字节。      
    
  
    --InputStreamReader:
                                       将字节转换成字符读进程序中
           构造器:
                      InputStreamReader(InputStream in); 
                                                  创建一个使用默认字符集的InputStreamReader  
                      InputStreamReader(InputStream in, Charset cs) 
                      InputStreamReader(InputStream in, CharsetDecoder dec) 
                      InputStreamReader(InputStream in, String charsetName) 
                                                  创建一个使用指定字符集的InputStreamReader  

  2.缓冲字符输入输出流:   (高级流)

    --PrintWriter:
                        提供了丰富的方法,比BufferedWriter更加常用,
                        此类型提供了行自动刷新的功能
           构造器:       
                  PrintWriter(File file) 
                  PrintWriter(OutputStream out)
                  PrintWriter(OutputStream out, boolean autoFlush)        
                  PrintWriter(String fileName) 
                  PrintWriter(Writer out) 
                  PrintWriter(Writer out, boolean autoFlush) 
       
                  上述构造器,有第二个参数的,可以设置为true,表示行自动刷新。  
                  只有一个参数的构造器,相当有两个参数时,设置为false的情况,即取消了行自动刷新的功能
       
            常用方法:
                     println(): 通过写入行分隔符字符串来终止当前行。 
                     println(boolean x):     打印一个布尔值,然后终止该行。  
                     void println(char x):   打印一个字符,然后终止该行。  
                     void println(char[] x): 打印字符数组,然后终止行。  
                     void println(double x): 打印双精度浮点数,然后终止行。  
                     void println(float x):  打印一个浮点数,然后终止该行。  
                     void println(int x):    打印一个整数,然后终止该行。  
                     void println(long x):   打印一个长整型,然后终止行。  
                     void println(Object x): 打印一个对象,然后终止该行。  
                     void println(String x):  
     
 --BufferedReader:提供了一个缓冲区
       
        构造器:   
                BufferedReader(Reader in):        创建使用默认大小的输入缓冲区的缓冲字符输入流  
                BufferedReader(Reader in, int sz):创建使用指定大小的输入缓冲区的缓冲字符输入流
        常用方法:  
                String readLine():      读一行字符串,读至换行符号为止,返回的数据不包含换行符
                                                  当返回值为null时,表示读至文件末尾

  3.文件字符流:(FileWriter/FileReader)
   
    --FileWriter:
                   相当于OutputStreamWriter与FileOutputStream合起来的功能,
                   内部也维护了一个缓冲区,但是需要手动flush
                 构造器:
                       FileWriter(File file)
                       FileWriter(File file, boolean append) 
                       FileWriter(String fileName) 
                       FileWriter(String fileName, boolean append)
           
             append:表示追加,但是此流不能设置字符集。
           
                 常用方法:
                        与 OutputStreamWriter的差不多
           
    --FileReader:
                       相当于InputStreamReader和FileInputStream合起来的功能
                       内部也维护了一个缓冲区
                 构造器:
                       FileReader(File file) 
                       FileReader(String fileName) 
                  常用方法:
                           与InputStreamReader的方法差不多

========================================================================

 *选择                                                                                                                                                                                                                           进行输入/输出的内容是文本内容,应该考虑使用字符流;                                                                                                                                进行输入/输出的内容是二进制内容,应该考虑使用字节流。

*字符集                                                                                                                                                                                                                          Windows下简体中文默认使用GBK字符集,                                                                                                                                                      Linux下简体中文默认使用UTF-8字符集
========================================================================
*System:
                  是一个final修饰的类型.
 --两个成员变量:
        out:是PrintStream类型,默认的输出目的地是控制台console
        in:   是InputStream类型,默认的数据源是键盘   
   
 

猜你喜欢

转载自blog.csdn.net/yk_3215123/article/details/83003551