乱码问题
package com.itheima.d2;
import java.io.*;
import java.nio.charset.StandardCharsets;
public class Test4 {
public static void main(String[] args) {
try (
//1、创建一个文件字符输入流与源文件接通
//Reader fr = new FileReader("IO\\src\\itheima04.txt");
Reader fr = new FileReader("IO\\src\\itheima.txt");
//2、把文件字符输入流包装成缓冲字符输入流
BufferedReader br = new BufferedReader(fr);
){
String line;
while ((line = br.readLine()) != null){
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
//乱码
字符输入转换流
public InputStreamReader(InputStream is, String charset)最常用
package com.itheima.d2;
import java.io.*;
public class Test5 {
public static void main(String[] args) {
try(
//1、得到文件的原始字节流
InputStream is = new FileInputStream("IO\\src\\itheima.txt");
//2、把原始的字节输入流按照指定的字符集编码转换成字符输入流
Reader isr = new InputStreamReader(is, "GBK");
//3、把字符输入流包装成缓冲字符输入流
BufferedReader br = new BufferedReader(isr);
) {
String line;
while ((line = br.readLine()) != null){}
System.out.println(line);
} catch (Exception e) {
e.printStackTrace();
}
}
}
字符输出转换流
第一种方法默认用UTF-8输出
package com.itheima.d2;
import java.io.*;
public class Test6 {
public static void main(String[] args) {
try (
//1、创建一个文件字节输出流
OutputStream os = new FileOutputStream("IO/src/itheima07.txt");
//2、把原始的字节输出流,按照指定的字符集编码转换成字符输出转换流
Writer osw = new OutputStreamWriter(os, "GBK");
//3、把字符输出流包装成缓冲字符输出流
BufferedWriter bw = new BufferedWriter(osw);
){
bw.write("我是好人");
bw.write("老忒双击666");
} catch (Exception e) {
e.printStackTrace();
}
}
}