1、按指定字符编码读取文件内容
// 1、提取GBK文件的原始字节流InputStream is = new FileInputStream("src/logback.xml");// 2、把原始字节流转换成字符输入流// 默认以UTF-8的方式转换字符流,还是会乱码和FileReader效果一样,一般不用这种方法// Reader isr =new InputStreamReader(is);// 3、按指定的编码GBK转换成字符输入流Reader isr = new InputStreamReader(is, "GBK");// 4、使用缓冲字符流读取字符输入流BufferedReader br=new BufferedReader(isr);String line;while ((line=br.readLine())!=null){ System.out.println(line);}br.close();
2、按指定字符编码输出字节流
1、使用getBytes可以输出指定编码字节
byte[] bytes = "我爱你中国".getBytes("GBK");System.out.println("*****GBK******");for (byte aByte : bytes) { System.out.print(aByte);}byte[] bytes1 = "我爱你中国".getBytes("UTF-8");System.out.println("\r\n*****UTF-8******");for (byte aByte1 : bytes1) { System.out.print(aByte1);}// *****GBK******// -50-46-80-82-60-29-42-48-71-6// *****UTF-8******// -26-120-111-25-120-79-28-67-96-28-72-83-27-101-67
2、使用OutputStreamWriter方法
// 1、定义一个字节输出流OutputStream os = new FileOutputStream("src/d1.txt");// 2、把原始字节输出流转换成字符输出流// 默认以UTF-8的方式转换字符流,还是会乱码和FileWriter效果一样,一般不用这种方法// Writer osw =new OutputStreamWriter(os);// 3、按指定的编码GBK转换成字符输入流Writer osw = new OutputStreamWriter(os, "GBK");// 4、使用缓冲字符流读取字符输入流BufferedWriter bw = new BufferedWriter(osw);bw.write("我爱你中国1~~");bw.write("我爱你中国2~~");bw.write("我爱你中国3~~");bw.write("我爱你中国4~~");bw.close();