簡體   English   中英

從文件讀取特殊字符時出現問題

[英]Issue while reading special characters from file

讀取帶有特殊字符的文件時遇到問題。 我的.txt文件包含以下數據:

我正在使用以下代碼讀取此文件:

StringBuilder sBuilderString = new StringBuilder();

for (int n; (n = loInputStream.read()) != -1;) {
    sBuilderString.append((char)n);
}

現在,此字符串再次用於寫入文件,問題是當我寫入文件時,這兩個字符之一被其他一些特殊字符替換。

我該如何編寫能夠讀取所有特殊字符並將其寫入另一個文件的代碼?

您的字符編碼有問題。 使用系統默認的字符編碼,對'(char)n)的調用將有效地將字節n轉換為字符,這可能與源文件的編碼不同。

避免這種情況的一種方法是將InputStream包裝在CharacterInputStream中,您可以在其中指定字符編碼:

Reader reader = new InputStreamReader( loInputStream, "UTF-8");

然后,您可以繼續將流讀入StringBuilder。 我還建議您將您的閱讀器用bufferedReader包裝,以通過阻止IO流來提高性能。

Reader reader = new BufferedReader(new InputStreamReader( loInputStream, "UTF-8"));

使用InputStreamReader並指定文件中使用的編碼。

暫無
暫無

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

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