由于文本文件的编码问题,有个时候读取出来的文件是乱码。
当我们使用InputStreamReader,OutputStreamWriter读取文件的时候可以修改文件的字符编码来解决乱码问题
InputStreamReader
如下代码设置读取格式gbk读取文件数据到程序中。
import java.io.*;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) throws IOException ,ClassNotFoundException{
// 设置转换流,将a.txt读取的时候是以gdk形式读取
InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("a.txt"),"gbk");
// 得到包装流
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
// 读取数据
String s = bufferedReader.readLine();
System.out.println(s);
// 释放
bufferedReader.close();
inputStreamReader.close();
}
}
OutputStreamWriter
如下代码以gdk的字符格式写入字符串到文件中
import java.io.*;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) throws IOException ,ClassNotFoundException{
// 创建流对象
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("a.txt"),"gbk");
// 写入数据
outputStreamWriter.write("This world is slowing");
// 释放
outputStreamWriter.close();
System.out.println("Done");
}
}
运行效果如下