2014-10-10 2 views
0

.txt 파일에 데이터를 쓰는 데 문제가 있습니다. 모든 데이터를 .txt 파일에 쓰지는 않습니다. 배열에 모든 것을 넣으려고했지만 작동하지 않습니다.모든 데이터를 txt 파일에 쓸 수 없습니다.

내 코드 :

BufferedWriter writer = null; 

    try { 
     String line; 
     Process p = Runtime.getRuntime().exec("ps -A -o pid"); 
     BufferedReader input = 
       new BufferedReader(new InputStreamReader(p.getInputStream())); 
     while ((line = input.readLine()) != null) { 

       writer = new BufferedWriter(new FileWriter(" the path ..")); 
       writer.write(line); 
      System.out.println(line); 

     } 
     writer.close(); 
     input.close(); 

    } catch (Exception err) { 
     err.printStackTrace(); 
     System.out.println("Sorry!"); 
    } 

그것은 콘솔의 마지막 줄을 씁니다.

+3

매번 루프에서 파일과 함께 쓰기 작업을 다시 작성했기 때문일 수 있습니다. 기본적으로 파일을 자르고 새 내용을 추가합니다. –

답변

6

루프를 반복 할 때마다 개체를 닫지 않고 개체를 다시 작성하면 개체를 사용하여 작성한 내용을 저장하려면 writer.close()를 사용해야합니다.

당신은 루프 전에 작가를 선언해야하므로으로 변경됩니다

BufferedWriter writer = null; 

    try { 
     String line; 
     Process p = Runtime.getRuntime().exec("ps -A -o pid"); 
     BufferedReader input = 
       new BufferedReader(new InputStreamReader(p.getInputStream())); 
     writer = new BufferedWriter(new FileWriter(" the path ..")); 
     while ((line = input.readLine()) != null) { 

       writer.write(line); 
      System.out.println(line); 

     } 
     writer.close(); 
     input.close(); 

    } catch (Exception err) { 
     err.printStackTrace(); 
     System.out.println("Sorry!"); 
    } 

난 그냥, 왜 한 작가마다 반복 객체 다시 선언 물어 봐도 다음?

+0

아, 나는 방금 그것을 제거했습니다. – NadirDev

관련 문제