2013-03-28 5 views
1

나는 단지 파일을 가져가는 작은 프로그램을 작성 중이며, 공백 다음에 마지막 4자를 잘라내어 새 파일에 씁니다. 이 작업을 수행하고 콘솔에 인쇄하면 제대로 작동합니다. 그들은 잘 나타나고 모든 것이 작동합니다. 그러나 BufferedWriter를 사용하여 새 파일에 쓰면 체크 할 때 그 파일에 이상한 문자열이 나타납니다. 여기 내 코드입니다 :bufferedwritter 이상한 외국 문자를 쓰고 있니?

package trimmer; 

import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.util.Scanner; 

public class trimmer { 

private File file; 
private File newfile; 

private Scanner in; 

public void Create() { 

    String temp, temp1; 

    try { 

     setScanner(new Scanner(file)); 
    } catch (FileNotFoundException e) { 
     System.out.println("file not found!!"); 

    } 

    if (!newfile.exists()) { 
     try { 
      newfile.createNewFile(); 
      FileWriter fw = new FileWriter(newfile.getAbsoluteFile()); 
      BufferedWriter bw = new BufferedWriter(fw); 
      while (in.hasNextLine()) { 
       temp1 = in.nextLine(); 
       temp = temp1.substring(temp1.lastIndexOf(' ') + 1); 
       System.out.println(temp); 
       bw.write(temp); 
      } 
      bw.close(); 
      System.out.println("done!"); 

     } catch (IOException e) { 
      System.out.println("Could not make new file: " + newfile + " Error code: " + e.getMessage()); 
     } 
    } 

} 

public Scanner getScanner() { 
    return in; 
} 

public void setScanner(Scanner in) { 
    this.in = in; 
} 

public File getFile() { 
    return file; 
} 

public void setFile(File file) { 
    this.file = file; 
} 

public File getNewfile() { 
    return newfile; 
} 

public void setNewfile(File newfile) { 
    this.newfile = newfile; 
} 

} 

내가 파일을 검사 할 때 그것은 다음과 같습니다

䐳噔吳商吳啍唳噎吳剄唳剄䘳剄唳噎吳商䠳卉䌳䕎䜳䱁䠳卉䴳㉕倳乓䐳䍐䐳啐吳䍖吳乓吳啍䔳䥘䌳噔匳剕唳乓唳䅍䌳䕎䜳䱁䴳㉕倳乓䐳䍐䐳啐吳䍖䠳卉吳乓吳啍䔳䥘䌳噔匳剕唳乓唳䅍 

이런 일이 될 사람이 왜 말해 줄래?

+0

어떤 파일을 파일 변수로 전달합니까? – DiogoSantana

+1

기본 인코딩은 무엇이며 읽고있는 파일의 인코딩은 무엇입니까? –

답변

2

FileWriter는 플랫폼 기본 문자 인코딩을 사용합니다. 이것이 원하는 인코딩이 아니면 적절하게 선택한 문자 인코딩을 사용하여 OutputStreamWriter를 사용해야합니다.