zoukankan      html  css  js  c++  java
  • java 21

    字符输出流:OutputStreamWriter

    构造方法:一共4个,说2个常用的

    A:OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流(eclise默认的是GBK编码表)

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

    A:OutputStreamWriter(OutputStream out):根据默认编码把字节流的数据转换为字符流

    1         OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(
    2                 "a.txt"));
    3         out.write("中国是我们de祖国");
    4         
    5         out.close();

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

    1         OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
    2                 "osw.txt"), "UTF-8"); // 指定UTF-8
    3         // 写数据
    4         osw.write("中国是我们的祖国");
    5 
    6         // 释放资源
    7         osw.close();

    字符输出流的方法:

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

    首先创建个字符输出流对象

    OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream(
                    "osw.txt"));

    A* public void write(int c):写一个字符

    osw.write('a');//看到的是a
    osw.write(97);//这个看到的是W,因为这个是字符流,会根据编码表自动寻找值所对应的字符

    B* public void write(char[] cbuf):写一个字符数组

    1  char[] chs = {'a','b','c','d','e'};
    2          osw.write(chs);

    C* public void write(char[] cbuf,int off,int len):写一个字符数组的一部分

    1 osw.write(chs,1,3);

    D* public void write(String str):写一个字符串

    osw.write("我爱睡觉");


    E* public void write(String str,int off,int len):写一个字符串的一部分

    osw.write("我爱睡觉", 2, 3);

    注意:字符流有个跟字节流不同的类似xxx.close()的方法:xxx.flush();

    那么,close()和flush()的区别呢:

    A:close()关闭流对象,但是先刷新一次缓冲区。关闭之后,流对象不可以继续再使用了。
    B:flush()仅仅刷新缓冲区,刷新之后,流对象还可以继续使用。flush方法是当你想把BufferedOutStream中的数据立即输出时,就调用。 

    也就是说,close()只能在流的结尾使用,因为一使用了,流对象就没了

    而,flush()可以在途中使用,因为它仅仅是刷新作用

    何事都只需坚持.. 难? 维熟尔。 LZL的自学历程...只需坚持
  • 相关阅读:
    how to fix bug in daily work
    我终究还是辞职了
    Nutch1.7学习笔记:基本环境搭建及使用
    线性表的基本操作
    GROUP BY中ROLLUP/CUBE/GROUPING/GROUPING SETS使用示例
    一步一步学android控件(之六) —— MultiAutoCompleteTextView
    echo命令写shell
    注入问题0x00
    Apache解析漏洞详解
    MySQL注入
  • 原文地址:https://www.cnblogs.com/LZL-student/p/5926078.html
Copyright © 2011-2022 走看看