簡體   English   中英

Java 7:調用Files.newBufferedReader時我應該使用什么字符集?

[英]Java 7: What charset shall I use when calling Files.newBufferedReader?

在以前的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中默認使用了什么字符集嗎? 我只是希望能夠找到並用新的語句替換舊語句。

以前,在閱讀純文本文件時,我不必擔心字符集。

好吧,你應該做的。 如果您只是使用FileReader ,則它使用系統的默認字符編碼。 這是一個壞主意,這就是為什么我總是使用FileInputStream和一個InputStreamReader 你應該總是明確它。 如果你真的想要系統的默認字符編碼,你應該使用Charset.defaultCharset() - 但我強烈建議你不要。

如果您要讀取文件,您應該知道字符編碼,並指定它。 如果您決定在編寫文件時使用哪種字符編碼,UTF-8是一個很好的默認選擇。

Java中的PrintWriter / PrintStream默認具有Charset.defaultCharset()

java.nio.charset.Charset.defaultCharset()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM