Java中读取文件时要注意读取文件的编码方式,编码方式不同会导致出现乱码,具体实现代码如下:
import java.io.*;
import java.nio.file.*;
import java.nio.charset.*;
public class ReaderInputFromFile {
public static void main(String[] args) {
Path file = Paths.get(System.getProperty("user.home")).resolve(
"Beginning Java Stuff").resolve("Sayings.txt");
if (!Files.exists(file)) {
System.out.println(file + " does not exist. Terminating program.");
System.exit(1);
}
try {
BufferedReader fileIn = new BufferedReader(Files.newBufferedReader(
file, Charset.forName("GBK")));//建立读取缓冲区,并设置读取编码方式
String saying = null;
int totalRead = 0;
while ((saying = fileIn.readLine()) != null) {//逐行读取
System.out.println(saying);
;
++totalRead;
}
System.out.format("%d sayings read.%n", totalRead);
} catch (IOException e) {
System.err.println("Error Writing file:" + file);
e.printStackTrace();
}
}
}
使用UTF-16编码读取效果如下:
使用GBK编码读取效果如下: