代码示例:
package cn.zxj.temp;
import java.io.*;
public class Test {
public static void main(String[] args) throws Exception{
//先造GBK编码的文件(windows下用记事本打开右下角显示ANSI,GBK是ANSI的子集)
doGBK();
//转UTF-8写出(windows下用记事本打开显示两个文件比较右下角字符集)
doGBKTUTF8();
}
private static void doGBKTUTF8() throws Exception {
FileInputStream fileInputStream = new FileInputStream("C:\\Users\\jz20kf\\Desktop\\temp\\md\\中文测试A.txt");
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "GBK");
FileOutputStream fileOutputStream = new FileOutputStream("C:\\Users\\jz20kf\\Desktop\\temp\\md\\中文测试B.txt");
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");
char[] ch = new char[1024];
int len = 0;
while((len=inputStreamReader.read(ch))!=-1){
outputStreamWriter.write(ch,0,len);
outputStreamWriter.flush();
}
outputStreamWriter.close();
fileOutputStream.close();
inputStreamReader.close();
fileInputStream.close();
}
private static void doGBK() throws Exception {
byte[] gbks = "你好啊".getBytes("GBK");
FileOutputStream fileOutputStream =
new FileOutputStream("C:\\Users\\jz20kf\\Desktop\\temp\\md\\中文测试A.txt");
fileOutputStream.write(gbks);
fileOutputStream.close();
}
}