2016-07-27 2 views
1

주기적으로 업데이트해야하는 매우 적은 양의 정보 만 포함하는 파일이 있습니다. 즉, 파일에 쓰기 전에 파일을 자르고 싶습니다. 내가 찾은 가장 쉬운 해결책은 다음과 같이 다시 삭제하고 작성하는 것입니다.자바 - 파일 내용을 바꾸는 방법?

File myFile = new File("path/to/myFile.txt"); 
myFile.delete(); 
myFile.createNewFile(); 
// write new contents 

이 방법은 문제가 없지만 더 좋은 방법이 있습니까?

+0

파일의 일관성을 유지 하시겠습니까? 그렇게한다면, 사본보다 더 나은 대답이있을 수 있습니다. – dasblinkenlight

답변

1

파일을 삭제하고 다시 만들 필요가 없습니다. 예를 들어 PrintWriter을 사용하여 파일에 쓰는 경우 현재 파일 내용을 덮어 씁니다.

예 :

public static void main(String[] args) throws IOException 
{ 
     PrintWriter prw= new PrintWriter (“MyFile.txt”); 
     prw.println("These text will replace all your file content");   
     prw.close(); 
} 

당신의 PrintWriter 생성자의 오버로드 된 버전을 사용하는 경우 그것은 단지 파일의 끝에 추가됩니다은 "거짓"아래의 예에서

PrintWriter prw= new PrintWriter (new FileOutputStream(new File("MyFile.txt"), true)); 
//true: set append mode to true 
0

을 파일을 덮어 쓰게하고, true는 그 반대의 원인이됩니다.

File file=new File("C:\Path\to\file.txt"); 
DataOutputStream outstream= new DataOutputStream(new FileOutputStream(file,false)); 
String body = "new content"; 
outstream.write(body.getBytes()); 
outstream.close(); 
관련 문제