转换流的原理,OutputStreamWriter介绍&代码实现

转换流的原理:

 

 

 

 

 

 

 

OutputStreamWriter介绍&代码实现:

java.io.outputstreamlriter extends writer

outputStreamwriter:是字符流通向字节流的桥梁:可使用指定的 charset将要写入流中的字符编码成字节。(编码:把能看懂的变成看不懂)

继续自父类的共性成员方法:

- void write(int c)写入单个字符。

- void write(char[cbuf)写入字符数组。

- abstractvoid write(char[ ] cbuf,int off,int len)写入字符数组的某一部分, off数组的开始索引, l.en写的字符个数。

- void write( String str)写入字符串。

- void write(String str, int off, int len)写入字符串的某一部分, off字符串的开始索引, Len写的字符个数。

- void flush()刷新该流的缓冲。

- void close( 关闭此流,但要先刷新它。

构造方法:

outputstreamwriter(OutputStream out )创建使用黑f认字符编码的 outputStreamWwriter。

outputStreamwriter(OutputStream out,String charsetName)创建使用指定字符集的outputStreamwriter。

参数:

outputStream out:字节输出流,可以用来写转换之后的字节到文件中

String charsetName:指定的编码表名称,不区分大小写,可以是utf-8/UTF-8,gbk/GBK ,...不指定默认使用UTF-8

使用步骤:

1.创建outputstreamwriter对象,构造方法中传递字节输出流和指定的编码表名称

2.使用outputStreamwriter对象中的方法write,把字符转换为字节存储缓冲区中(编码)

3.使用outputstreamwriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程)

4.释放资源

复制代码
public class zhuanhuan {
    public static void main(String[] args) throws IOException {
    gbk();
//    wri_utf();

}

    /**
     * 使用专换流outputStreamldriter写GBK格式的文件
     */
    private static void gbk() throws IOException {
    //1.创建outputStreamvriter对象,构造方法中传递字节输出流和指定的编码表名称
    OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("buai.txt"), "GBK");
    //2.使用outputstreamvriter对象中的方法vrite,把字符转换为字节存储缓冲区中(编码)
    writer.write("好吗");
    //3.使用outputStreamrier对象中的方法fLush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程)
    writer.flush();
    //4.释放资源
    writer.close();
  }

    /**
     * 使用专换流outputStreamldriter写UTF-8格式的文件
     */
  private static void wri_utf() throws IOException {
      //1.创建outputstreamwriter对象,构造方法中传递字节输出流和指定的编码表名称
      OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream("bupei.txt"));
      //2.使用outputStreamwriter对象中的方法vrite,把字符转换为字节存储缓冲区中(编码)
      writer.write("狱神");
      //3.使用outputStreamwriter对象中的方法flush,把内存缓冲区中的字节刷新到文件中(使用字节流写字节的过程)
      writer.flush();
      //4 .释放资源
      writer.close();
  }
复制代码

 

 

 

 

 

 

 

 

 

posted @   冰灵IT  阅读(132)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示