InputStreamReader 是字节流通向字符流的桥梁:它使用指定的charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。
OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的 charset 将要写入流中的字符编码成字节。它的作用的就是,将字符串按照指定的编码表转成字节,在使用字节流将这些字节写出去。
@Test
public void testFileReader() {
String filePath = "src/main/resources/json/student_array.json";
String fileCopyPath = "src/main/resources/json/student_array_copy_inputstreamreader.json";
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(filePath), "UTF-8"));
BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileCopyPath), "UTF-8"))
) {
String thisLine;
while ((thisLine = bufferedReader.readLine()) != null) {
bufferedWriter.write(thisLine);
bufferedWriter.newLine();
}
} catch (FileNotFoundException e) {
throw new RuntimeException(e);
} catch (IOException e) {
throw new RuntimeException(e);
}
}