2013-10-22 6 views
0

파일을 읽고 파일의 복사본을 만들고 싶지만 코드는 파일의 마지막 줄만 씁니다. write()에 전화 할 때마다 새 줄에 쓰도록하려면 어떻게해야합니까? 중복을위한 새로운 파일을 만들고 싶습니다. 따라서 FileWriter 생성자에 추가 할 수 없습니다. 당신은 instructions 배열의 인덱스를 업데이트하지 않는BufferedWriter 자체 덮어 쓰기

//Create file reader 
    BufferedReader iReader = new BufferedReader(new FileReader(args[1])); 

    //Create file writer 
    BufferedWriter oWriter = new BufferedWriter(new FileWriter(args[2], true)); 

    String strLine; 
    //reading file 
    int iterate = 0; 
    while((strLine = iReader.readLine()) != null) { 
     instructions[iterate] = strLine; 
    } 

    //creating duplicate 
    for(int i = 0; i < instructions.length; i++) { 
     if(instructions[i] != null) { 
      oWriter.write(instructions[i]); 
      oWriter.newLine(); 
     } else { 
      break; 
     } 
    } 

    try { 
     iReader.close(); 
     oWriter.close(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
+0

를 증가하지 않습니다? 그것은 지시해야합니다 [iterate ++] = strLine; – Ayman

+0

아, 그게 문제였습니다. 고맙습니다. – Danson

답변

3

당신은 iterate

int iterate = 0; 
while((strLine = iReader.readLine()) != null) 
{ 
    instructions[iterate] = strLine; 
    iterate++; 
} 
0

:

내 코드입니다.

또한 어쨌든 왜이 방법으로 파일을 복사하는지 명확하지 않습니다. 왜 줄을 서서히하는 거지? 아니면 Apache Commons 같은 유틸리티 클래스를 사용하십시오. 당신이 "반복 처리"를 증가되는 경우