[英]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.