2015-11-20 82 views
0

我想獲取多個文本文件並將它們全部合併到一個新文件中。但是,查看創建的新文件時,有一些奇怪的字符替換了引號,我無法弄清楚爲什麼會發生這種情況。試圖指定編碼,但它沒有解決問題。我使用錯誤的字符編碼嗎?BufferedReader創建奇數字符,我使用哪種字符編碼?

Reader reader = new InputStreamReader(new FileInputStream(fileName), "utf-8"); 

這裏是問題:

原始文件包含:

|3_PatFemale("X")|3_PatSex (」M」 or 「F」)| 

新文件包含

|3_PatFemale("X")|3_PatSex (�M� or �F�)| 

代碼:

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(exportFile),"UTF-8")); 

for (File f : files) { 
     FileInputStream fis; 
     try { 
      fis = new FileInputStream(f); 
      BufferedReader in = new BufferedReader(new InputStreamReader(fis)); 

      String aLine; 
      while ((aLine = in.readLine()) != null) { 
       out.write(aLine); 
       out.newLine(); 
      } 

      in.close(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
+1

您需要使用與FileOuputStream編碼爲好,你有沒有在你的代碼顯示在這裏。 –

+0

對不起,我在頂部添加了小行 – tai

+0

謝謝。必須將編碼更改爲ANSI。我相信這解決了這個問題。 – tai

回答