1、很多时候需要GBK编码的文件,但它实际上是UTF-8编码的文件,就需要把GBK编码的文件转换为UTF-8编码的文件.
2、很多时候需要UTF-8编码的文件,但它实际上是GBK编码的文件,同样需要把UTF-8编码的文件转换为GBK编码的文件.
而java中又没有提供GBK编码文件和UTF-8编码文件之间相互转换,需要借助相关软件完成。
public static void main(String[] args) throws Exception {
/*
很多时候需要GBK编码的文件,但它实际上是UTF-8编码的文件,就需要把GBK编码的文件转换为UTF-8编码的文件.
很多时候需要UTF-8编码的文件,但它实际上是GBK编码的文件,同样需要把UTF-8编码的文件转换为GBK编码的文件.
而java中又没有提供GBK编码文件和UTF-8编码文件之间相互转换,需要借助相关软件完成。
定义方法完成GBK编码文件和UTF-8编码文件之间相互转换。
*/
//定义方法完成GBK编码文件和UTF-8编码文件之间相互转换。
File gbkFile = new File("day10-homework\\src\\gbk.txt");
File utf8File = new File("day10-homework\\src\\utf8.txt");
convert(gbkFile,utf8File,"GBK","UTF-8");
File gbkFile2 = new File("day10-homework\\src\\utf8_2.txt");
File utf8File2 = new File("day10-homework\\src\\gbk_2.txt");
convert(gbkFile2,utf8File2,"UTF-8","GBK");
}
//方法:把指定编码的源文件转换成指定编码的目标文件 (转换前源文件地址,转换后源文件地址,转换前编码,转换后编码)
public static void convert(File srcPath,File destPath,String srcCode,String destCode) throws Exception {
FileInputStream fis = new FileInputStream(srcPath);
InputStreamReader isr = new InputStreamReader(fis,srcCode);
BufferedReader br = new BufferedReader(isr);
FileOutputStream fos = new FileOutputStream(destPath);
OutputStreamWriter osw = new OutputStreamWriter(fos,destCode);
BufferedWriter bw = new BufferedWriter(osw);
String line;
while ((line= br.readLine())!=null){
bw.write(line);
}
bw.close();
br.close();
}