其他分享
首页 > 其他分享> > InputStreamReader介绍&代码实现和转换文件编码_练习

InputStreamReader介绍&代码实现和转换文件编码_练习

作者:互联网

InputStreamReader介绍&代码实现

package com.yang.Test.ReverseStream;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * java.io.InputStreamReader extends Reader
 * InputSTreamReader:是字节流通向字符流的桥梁:他使用指定的charset读取字节并将其解码为字符
 *
 * 继承自父类的共性成员方法:
 * int read()读取单个字符并且返回
 * int read(char[] cbuf)一次读取多个字符,将字符读入数组
 * void close()关闭此流释放与之关联的所有资源
 * 构造方法:
 * InputStreamReader(InputStream in) 创建一个使用默认字符集的InputStreamReader
 * InputStreamReader(InputStream in,String charsetName)创建使用指定字符集的InputStreamReader
 * 参数:
 * InputStream in:字节输入流用来读取文件中保存的字节
 * String charsetName:指定的编码表名称,不区分大小写不指定默认使用UTF-8
 *
 * 使用步骤:
 * 1.创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称
 * 2.使用InputStreamReader对象中的read方法读取文件
 * 3.释放资源
 *
 * 注意事项:
 * 构造方法中指定的编码表名称要和文件的编码相同,某则会发生乱码
 */
public class InputStreamReaderStudy {
    public static void main(String[] args) throws IOException {
        InputStreamReader isr = new InputStreamReader(new FileInputStream("D:\\f.txt"),"GBK");

        int read = 0;
        while((read = isr.read())!=-1){
            System.out.println((char)read);
        }


        isr.close();
    }
}

练习_转换文件编码

将GBK编码的文本文件,转换为UTF-8编码的文本文件
案例分析:
1.指定GBK编码的转换流,读取文本文件
2.使用UTF-8编码的转换流,写出文本文件

代码实现:

package com.yang.Test.ReverseStream;

import java.io.*;

public class Test {
    public static void main(String[] args) throws IOException {
        //创建InputStreamReader对象,构造方法中传递字节输入流和指定的编码表名称GBK
        InputStreamReader isr = new InputStreamReader(new FileInputStream("我是GBK.txt"),"GBK");
        //创建OutputStreamWriter对象,构造方法中传递字节输出流和指定的编码表名称
        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("我是UTF-8.txt"),"UTF-8");
        //使用InputStreamReader对象中的方法read读取文件
        int len = 0;
        while((len = isr.read())!=-1){
            //使用OutputStreamWriter对象中的方法writer吧读取的数据写入到文件中
            osw.write(len);
        }
        //释放资源
        osw.close();
        isr.close();
    }
}

标签:编码,读取,read,练习,new,InputStreamReader,字节
来源: https://www.cnblogs.com/ailhy/p/16491059.html