转换流

OutputStreamWriter

java.io.OutputStreamWriter extends Writer
OutputStreamWriter:是字符流通想字节的桥梁:可以使用指定的charset将要写入流中的字符编码成字节(编码:把能看懂的变成看不懂)
继续自父类的共性成员方法:1、void write(int c)写入单个字符
2、void write(char[] cbuf)写入字符数组
3、abstract void write(char[] cbuf,int off,int len)写入字符数组的某一部分,off数组的开始索引,len写的字符个数
4、void write(String str)写入字符串
5、void write(String str,int off,int len)写入字符串的某一部分,off字符串的开始索引,len写的字符个数
构造方法:OutputStreamWriter(OutputStream out)创建使用的默认字符编码的OutputStreamWriter
OutputStreamWriter(OutputStream out,String charsetName)创建使用指定字符集的OutputStreamWriter
参数:OutputStream out:字节输出流可以用来写转换之后的字节到文件中
String charsetName:指定的编码来名称不区分大小写可是utf-8/UTF-8,gbk/GBK不指定默认使用UTF-8
使用步骤:1、创建OutputStreamWriter对象构造方法中传递字节输出流和指定的编码表名称
2、使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储在缓冲区中(编码)
3、使用OutputStreamWriter对象中的方法flush把内存中的字节刷新到文件中去(使用字节流的过程)
4、释放资源

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class demo02 {
    public static void main(String[] args) throws IOException {
        write_utf_8();
        write_gbk();
    }
    public static void write_utf_8() throws IOException {//创建OutputStreamWriter对象构造方法中传递字节输出流和指定的编码表名称
        OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\BaiduNetdiskDownload\\123.txt"),"utf-8");
        //使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储在缓冲区中(编码)
        osw.write("你好");
        osw.flush();
        osw.close();
    }
    public static void write_gbk() throws IOException {
        OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\BaiduNetdiskDownload\\123.txt"),"gbk");
        //使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储在缓冲区中(编码)
        osw.write("你好");
        osw.flush();
        osw.close();
    }
}

java.io.OutputStreamWriter extends Writer
OutputStreamWriter:是字符流通想字节的桥梁:可以使用指定的charset将要写入流中的字符编码成字节(编码:把能看懂的变成看不懂)
继续自父类的共性成员方法:1、void write(int c)写入单个字符
2、void write(char[] cbuf)写入字符数组
3、abstract void write(char[] cbuf,int off,int len)写入字符数组的某一部分,off数组的开始索引,len写的字符个数
4、void write(String str)写入字符串
5、void write(String str,int off,int len)写入字符串的某一部分,off字符串的开始索引,len写的字符个数
构造方法:OutputStreamWriter(OutputStream out)创建使用的默认字符编码的OutputStreamWriter
OutputStreamWriter(OutputStream out,String charsetName)创建使用指定字符集的OutputStreamWriter
参数:OutputStream out:字节输出流可以用来写转换之后的字节到文件中
String charsetName:指定的编码来名称不区分大小写可是utf-8/UTF-8,gbk/GBK不指定默认使用UTF-8
使用步骤:1、创建OutputStreamWriter对象构造方法中传递字节输出流和指定的编码表名称
2、使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储在缓冲区中(编码)
3、使用OutputStreamWriter对象中的方法flush把内存中的字节刷新到文件中去(使用字节流的过程)
4、释放资源

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
public class demo02 {
    public static void main(String[] args) throws IOException {
        write_utf_8();
        write_gbk();
    }
    public static void write_utf_8() throws IOException {//创建OutputStreamWriter对象构造方法中传递字节输出流和指定的编码表名称
        OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\BaiduNetdiskDownload\\123.txt"),"utf-8");
        //使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储在缓冲区中(编码)
        osw.write("你好");
        osw.flush();
        osw.close();
    }
    public static void write_gbk() throws IOException {
        OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\BaiduNetdiskDownload\\123.txt"),"gbk");
        //使用OutputStreamWriter对象中的方法writer,把字符转换为字节存储在缓冲区中(编码)
        osw.write("你好");
        osw.flush();
        osw.close();
    }
}

练习

练习:转换文件编码,将GBk编码的文件转换成UTF-8编码的文本文件
分析1、创建InputStreamReader 对象,构造方法中传递字节输入流和指定的编码表名称GBK
2、创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称UTF-8
3、使用InputStreamReader对象中的方法read读取文件
4、使用OutputStreamWriter对象中的方法write把读取的数据写入到文件中
5、释放资源

import java.io.*;
public class demo04 {
    public static void main(String[] args) throws IOException {
        //创建InputStreamReader 对象,构造方法中传递字节输入流和指定的编码表名称GBK
        InputStreamReader isr=new InputStreamReader(new FileInputStream("D:\\BaiduNetdiskDownload\\123.txt"),"GBK");
        //创建InputStreamReader 对象,构造方法中传递字节输入流和指定的编码表名称GBK
        OutputStreamWriter osw=new OutputStreamWriter(new FileOutputStream("D:\\BaiduNetdiskDownload\\123.txt" ),"utf-8");
        //使用InputStreamReader对象中的方法read读取文件
        int len=0;
        while((len=isr.read())!=-1){
            osw.write(len);
        }
        osw.close();
        isr.close();
    }
}
上一篇:python-Sqlite executemany和DELETE


下一篇:基于微信的座位预约预订小程序(java后台springboot框架)、毕业设计、开题报告、毕业论文参考(7)数据库设计