2014-12-28 4 views
0

다음 코드가 올바르게 실행 중입니다. 문제는 내가 수행 한 파일을 삭제하려고 할 때 가장 바깥 쪽 루프가 끝날 때 발생합니다. fileEntry.delete(); print 문은 'check'값을 false로 표시합니다. 즉, 파일이 삭제되지 않습니다.fileEntry.delete(); 파일을 삭제하지 않음

scanInput.close(); 

당신은 그것을 보장하기 위해 try-with-resources 문을 사용하여 Scanner를 만들 수 있습니다 자동으로 종료됩니다 : 당신이 그것을 삭제하기 전에

for (File fileEntry : folderneg.listFiles()) 
    { 
       temp = fileEntry.getPath(); 

       System.out.println("File= " + fileEntry +" "+ ++cnttneg + " " + ++dircnt); 
       File file = new File(temp); 
       Scanner scanInput = new Scanner(new FileReader(file)); 

       //To separate sentences 
       scanInput.useDelimiter("\\n"); 
       ArrayList<String> sentences = new ArrayList<String>(); 
       String theSentence; 

       while(scanInput.hasNext()) 
       { 
         String next = scanInput.next(); 
         theSentence = new String(next); 
         sentences.add(theSentence); 
       } 

       for (String sen: sentences) 
       { 

        BufferedWriter bwneut = new BufferedWriter(new FileWriter(fileneut.getAbsoluteFile())); 
        String indivual_sentence_of_a_line[] = sen.trim().split("\\.");         

        for (String one_review: indivual_sentence_of_a_line) 
        { 
         //some code 
        } 
        bwneut.write(write_all_neut); 
        bwneut.close(); 
       } 
      boolean check = fileEntry.delete(); 
      System.out.println(check); 
    }//end of for 

답변

0

당신은 파일을 닫아야합니다

// open input 
try (Scanner scanInput = new Scanner(new FileReader(fileEntry))) { 
    // ... use the input in this block ... 

    // the input is automatically closed when the try-with-resources block 
    // is exited, even if an exception is thrown. 
} 
fileEntry.delete();