2013-12-23 9 views
2

그래, 시스템을 구현 중이므로 .txt 파일에 저장된 개수를 유지하고 있습니다.추가하지 않고 파일에 txt 쓰기

카운트는 정수입니다.

내가 가지고있는 유일한 문제는 이전 수를 대체하는 대신, 예 :

"78" -> "79" 

이전 카운트에 새로운 카운트를 추가합니다. 예컨대

"78" -> "7879" 

내 코드는 다음과 같습니다 당신은 추기를 가능하게하는

private static void saveCount(int inCount) throws FileNotFoundException, IOException { 
    BufferedReader fbr = new BufferedReader(new FileReader("count.txt")); 
    try (FileWriter fw = new FileWriter("count.txt", (fbr.readLine() != null))) { 
     String count = Integer.toString(inCount); 
     fw.write(count); 
    } 
} 

답변

3

. 다음과 같이 추가로 비활성화 false(fbr.readLine()!=null) 바꾸기 :

private static void saveCount(int inCount) throws FileNotFoundException, 
     IOException { 
    BufferedReader fbr = new BufferedReader(new FileReader("count.txt")); 
    try (FileWriter fw = new FileWriter("count.txt", false)) { 
     String count = Integer.toString(inCount); 
     fw.write(count); 
    } 
} 
+0

내용을 업데이트하는 데 도움이된다고 생각하지 마십시오. –

+0

@JunedAhsan 완벽하게 작동합니다. 아마도 이전 편집에서 무언가가 고장 났을 것입니까? –

+1

참고 : 더 이상 필요 없으므로 답변에서'BufferedReader'를 제거 할 수 있습니다. –

5

FileWriter 생성자의 두번째 파라미터는 부울 플래그 append이다. 추가하는 대신 파일을 덮어 쓰려면 false로 설정하십시오.

1

사용하는 FileReader의 생성자에는 append (of boolean) 매개 변수가 있습니다. 만약 사실이라면 - 당신은 파일의 내용을 덧붙일 것입니다 (그리고 7879가 있습니다). false 인 경우 파일의 내용이 무시됩니다.

그래서 fbr.readLine()은 null이 아니므로 매번 내용을 추가합니다.

1

BufferedReader의 BufferedWriter insted를 사용하고 작업이 끝나면 닫습니다.

BufferedWriter out = new BufferedWriter(new FileWriter("count.txt")); 
    out.write(Integer.toString(inCount)); 
    out.close(); 
관련 문제