java 字符转换流
package cn.sasa.demo4; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class OutputStreamWriterDemo { public static void main(String[] args) throws IOException { /** * FileWriter 不能指定字符编码 * * 用OutputStreamWriter * 将字符流转成字节流 * */ // writeGBK(); //writeUTF8(); //readGBK(); readUTF8(); } static void writeGBK() throws IOException { //1、创建一个FileOutputStream,绑定目的 FileOutputStream output = new FileOutputStream("d:/sasa/test1225.txt"); //2、创建一个OutputStreamWriter,指定字符编码, //构造函数的第二个字符串参数指定字符编码,不写默认是系统的默认编码GBK OutputStreamWriter writer = new OutputStreamWriter(output); //3、调用write writer.write("你好"); writer.flush(); writer.close(); } static void writeUTF8() throws IOException { FileOutputStream output = new FileOutputStream("d:\\sasa\\utf.txt"); OutputStreamWriter writer = new OutputStreamWriter(output, "UTF-8"); writer.write("啦啦啦"); writer.flush(); writer.write("你好"); writer.flush(); writer.close(); } static void readGBK() throws IOException { FileInputStream input = new FileInputStream("d:\\sasa\\test1225.txt"); InputStreamReader reader = new InputStreamReader(input); char[] charArr = new char[1024]; @SuppressWarnings("unused") int len = 0; while((len = reader.read(charArr)) != -1) { System.out.print(new String(charArr)); } reader.close(); } static void readUTF8() throws IOException { FileInputStream input = new FileInputStream("d:\\sasa\\utf.txt"); InputStreamReader reader = new InputStreamReader(input , "UTF-8"); char[] charArr = new char[1024]; @SuppressWarnings("unused") int len = 0; while((len = reader.read(charArr)) != -1) { System.out.print(new String(charArr)); } reader.close(); } }