转换流

import java.io.FileWriter;
import java.io.IOException;

public class Demo01 {
    //直接写入utf-8编码文件中是乱码
    public static void main(String[] args) throws IOException {
        FileWriter fw=new FileWriter("E:\java\utf-8.txt",true);
        fw.write("你好,小猪佩奇");
        fw.close();
    }
}
OutputStreamWriter类
写入utf-8编码文件
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class Demo02 {
    //转换流写入utf-8编码文件中显示就正常了
    public static void main(String[] args) throws IOException {
        //指定目的地
        FileOutputStream fos=new FileOutputStream("E:\java\utf-8.txt",true);
        //创建转换流
        OutputStreamWriter osw=new OutputStreamWriter(fos, "utf-8");
        //写入内容
        osw.write("你好");
        osw.flush();
        //释放资源(new了谁就关谁  先开的后关)
        osw.close();
        fos.close();
    }
}
写入gbk文件
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;

public class Demo03 {
    //写入gbk文件
    public static void main(String[] args) throws IOException {
        //指定目的地
        FileOutputStream fos=new FileOutputStream("E:\java\gbk.txt",true);
        //创建转换流
        OutputStreamWriter osw=new OutputStreamWriter(fos);//默认gbk
        osw.write("你好");
        osw.close();
        fos.close();
    }
}

InputStreamReader类
读取utf-8文件
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class Demo04 {
    //读取utf-8文件
    public static void main(String[] args) throws IOException {
        //指定目的地
        FileInputStream fis=new FileInputStream("E:\java\utf-8.txt");
        //创建转换流
        InputStreamReader isr=new InputStreamReader(fis, "utf-8");
        int len=0;
        while((len=isr.read())!=-1){
            System.out.println((char)len);
        }
        isr.close();
        fis.close();
    }
}

数组字节读取gbk文件
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

public class Demo05 {
    //数组字节读取文件
    public static void main(String[] args) throws IOException {
        //明确数据源
        FileInputStream fis=new FileInputStream("E:\java\gbk.txt");
        //创建转换流
        InputStreamReader isr=new InputStreamReader(fis);//默认gbk
        //读取文件
        char[] ch=new char[24];
        int len=0;
        while((len=isr.read(ch))!=-1){
            System.out.println(new String(ch,0,len));
        }
        isr.close();
        fis.close();
    }
}
原文地址:https://www.cnblogs.com/zhaotao11/p/10248156.html