在以前的Java版本中,我会通过创建这样的缓冲读取器来读取文件:
BufferedReader in = new BufferedReader(new FileReader("file.txt"));
在Java 7中,我想使用Files.newBufferedReader
,但我也需要传入一个charset。例如:
BufferedReader in = Files.newBufferedReader(Paths.get("file.txt"),
Charset.forName("US-ASCII"));
以前,我在阅读纯文本文件时不必担心字符集。我应该使用什么字符集?你知道在以前版本的Java中默认使用了什么字符集吗?我只是希望能够找到并用新的陈述替换旧陈述。
答案 0 :(得分:11)
嗯,你应该做的。如果您刚刚使用以前,我在阅读纯文本文件时不必担心字符集。
FileReader
,则它使用系统的默认字符编码。这是个坏主意,这就是为什么我总是使用FileInputStream
和InputStreamReader
。你应该总是明确它。如果确实想要系统的默认字符编码,则应使用Charset.defaultCharset()
- 但我强烈建议您不要。{/ p>
如果您要读取文件,您应该知道字符编码,并指定它。如果你决定在写文件时使用什么字符编码,UTF-8是一个很好的默认选择。
答案 1 :(得分:0)
PrintWriter
/ PrintStream
默认为Charset.defaultCharset()
java.nio.charset.Charset.defaultCharset()