字符编码与字符集
win7、win10默认使用GBK编码
在IDEA中的默认编码是UTF-8,而在Windows系统中的默认编码是GBK,所以读取会产生乱码
使用转换流解决上面的问题
FileReader
转换流
使用字符输入流读取中文字符的过程
转换流的工作原理
转换流可以自己指定编码表
OutputStreamWriter
使用
InputStreamReader
使用
文件编码格式转换练习
package FileInputStreamTest;
import java.io.*;
public class codeChange {
public static void main(String[] args) throws IOException {
InputStreamReader isr = new InputStreamReader(new FileInputStream("C:\\Users\\hpuzjh\\Desktop\\utf8.txt"),"utf-8");
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("C:\\Users\\hpuzjh\\Desktop\\gbk.txt"),"gbk");
int len = 0;
while ((len = isr.read())!=-1){
osw.write(len);
}
osw.close();
isr.close();
}
}
package FileInputStreamTest;
import java.io.*;
public class codeChange {
public static void main(String[] args) throws IOException {
InputStreamReader isr = new InputStreamReader(new FileInputStream("C:\\Users\\hpuzjh\\Desktop\\utf8.txt"),"utf-8");
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("C:\\Users\\hpuzjh\\Desktop\\gbk.txt"),"gbk");
int len = 0;
char[] chs = new char[1024];
while ((len = isr.read(chs))!=-1){
osw.write(chs,0,len);
}
osw.close();
isr.close();
}
}