必威体育Betway必威体育官网
当前位置:首页 > IT技术

OutputStreamWriter

时间:2019-08-30 02:11:06来源:IT技术作者:seo实验室小编阅读:87次「手机版」
 

outputstreamwriter

|--字符流( 字符流 = 字节流 +编码表。)
            |--字符输入流
                Reader                                   ------抽象类 
                    int read():一次读取一个字符
                    int read(char[] chs):一次读取一个字符数组

                    |--inputstreamreader                 ------extends  Reader
                        InputStreamReader = fileinputstream + 编码表(GBK)
                        |--FileReader                    ------extends InputStreamReader
                            FileReader = FileInputStream + 编码表(GBK)


                    |--BufferedReader                    ------extends  Reader
                        String readLine():一次读取一个字符串

                    |--StringReader                      ------extends  Reader

            |--字符输出流
                Writer                                   ------抽象类 
                    void write(int ch):一次写一个字符
                    void write(char[] chs,int index,int len):一次写一个字符数组的一部分

                    |--outputstreamwriter                ------extends Writer
                            outputstreamWriter = FileOutputStream + 编码表(GBK)
                        |--FileWriter                    ------extends OutputStreamWriter
                            FileWriter = FileOutputStream + 编码表(GBK)

                    |--BufferedWriter                    ------extends Writer
                        void newLine():写一个换行符
                        void write(String line):一次写一个字符串

                    |--printwriter                       ------extends Writer
                    |--StringWriter                      ------extends Writer

OutputStreamWriter :OutputStreamWriter = FileOutputStream + 编码表(GBK)

是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它使用的字符集可以由名称指定或显式给定,否则将接受平台默认的字符集。

每次调用 write() 方法都会导致在给定字符(或字符集)上调用编码转换器。在写入底层输出流之前,得到的这些字节将在缓冲区中累积。可以指定此缓冲区的大小,不过,默认的缓冲区对多数用途来说已足够大。注意,传递给 write() 方法的字符没有缓冲。

为了获得最高效率,可考虑将 OutputStreamWriter 包装到 BufferedWriter 中,以避免频繁调用转换器。例如:

Writer out

= new BufferedWriter(new OutputStreamWriter(System.out));

构造方法:

  • OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流
  • OutputStreamWriter(OutputStream out,String charsetName):根据指定编码把字节流数据转换为字符流

常用方法:

  • public void write(int c):写一个字符
  • public void write(char[] cbuf):写一个字符数组
  • public void write(char[] cbuf,int off,int len):写一个字符数组的一部分
  • public void write(String str):写一个字符串
  • public void write(String str,int off,int len):写一个字符串的一部分

        // 创建对象
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
                "fos.txt"),"UTF-8");
        // 写数据
        // public void write(int c):写一个字符
         osw.write('a');
         osw.write(98);
         osw.write("\r\n");
        // public void write(char[] cbuf):写一个字符数组
         char[] chs = {'q','w','e','r','t'};
         osw.write(chs);
         osw.write("\r\n");
        // public void write(char[] cbuf,int off,int len):写一个字符数组的一部分
         osw.write(chs,1,3);
         osw.write("\r\n");
        // public void write(String str):写一个字符串
         osw.write("public void write(String str):写一个字符串");
         osw.write("\r\n");
        // public void write(String str,int off,int len):写一个字符串的一部分
        osw.write("public void write(String str,int off,int len):写一个字符串的一部分", 2, 3);
         osw.write("\r\n");
        // 刷新缓冲区
        osw.flush();
        // 释放资源

输出:fos.txt
ab
qwert
wer
public void write(String str):写一个字符串
bli

相关阅读

InputStreamReader和OutputStreamWriter 的区别和用法

转自:https://blog.csdn.net/Appleyk/article/details/79639444一、InputStreamReader用于将一个字节流中的字节解码成字符 , 用法

OutputStreamWriter的概述和使用

需求:读取项目根目录下的InputStreamReaderDemo1.java,并输出到命令行        分析:                   

InputStreamReader和OutputStreamWriter 的区别和用法

一、InputStreamReader用于将一个字节流中的字节解码成字符 , 用法如下 @Test public void Test19() throws Exception { Input

JAVA基础知识之OutputStreamWriter流

一、OutputStreamWriter流    API说明:OutputStreamWriter是从字符流到字节流的桥接:使用指定的字符集将写入其中的字符编码为字

分享到:

栏目导航

推荐阅读

热门阅读