2015-01-23 6 views
0

처음에는 Attemps 기능이 처음 제대로 작동합니다. 파일에서 요청을 정교하게 만들고 내용을 임시 파일로 옮긴 다음 로그 파일을 삭제하고 "temporaneo.txt"파일의 이름을 변경합니다 ""log.txt "에 있습니다. 이 기능을 두 번째로 시작했지만 프로 시저가 더 이상 성공하지 못하는 것 같습니다. 특히 로그 파일이 삭제되지 않고 "temporaneo.txt"파일의 이름이 "log.txt"로 바뀌지 않습니다. 왜 이런 일이 생길까요? 그 절차를 착각 한거야? 처음에는이 기능이 훌륭하게 수행되는 반면에 나는 정말로 그들을 다룰 수 없습니다. 자바 7 neighter 또는 8 그것을 제거하고 모든 것이 잘 작동합니다 -Java는 파일을 삭제하지 않습니다.

public void Attemps()throws IOException 
{ 
    try 
    { 
     BufferedReader in = new BufferedReader(new FileReader("log.txt")); 
     PrintWriter out = new PrintWriter(new File("temporaneo.txt")); 

     String line; 
     String params[]; 

     while((line = in.readLine()) != null) 
     { 
      params = line.split(";", 2); 
      if(client.equals(params[0])) 
      { 
       int accessi_aggiornati = Integer.parseInt(params[1]); 
       accessi_aggiornati--; 
       params[1] = String.valueOf(accessi_aggiornati); 
       out.print(params[0] + ";" + params[1]); 
      } 
      else 
      { 
       out.println(line); 
     } 
    } 
     in.flush(); //log 
     out.flush(); //temporaneo 
     in.close(); 
     out.close(); 

     //Delete log and rename temporary file 
     File f1 = new File("log.txt"); 
     f1.delete();  
     File f2 = new File("temporaneo.txt"); 
     f2.renameTo(f1); 

     System.out.println("Update complete"); 
    }catch(Exception e) 
    { 
     e.printStackTrace(); 
    } 
} 
+0

는 당신이 실제로이 파일을해야합니까? null 값이 아닌가? – roeygol

+1

로그 파일이 항상 있습니다.이 코드를 사용하여 log.txt 내용을 업데이트합니다. – Debug

+0

이 코드를 실행하면 완전히 이해할 수 있습니다. 하지만 그 후에는 그렇지 않습니까? – Ascalonian

답변

-1

의 BufferedReader는 "플러시()"라는 방법을 알지 못한다.

+0

그건 문제지만, OP는 자신의 코드를 실행할 수 있다고 말했다. 이것이 오류 일 경우 실행되지 않을 것이라고 상상합니다. – Ascalonian

+0

글쎄,이 답변을 게시하는 것은 유감 스럽지만 지금 당장 논평 할 수 있습니다. – Marcel

+0

나는 downvoted :-)을 얻을 기회가 있기 전에 코멘트로 바뀔 것이다. – Ascalonian

0
  1. BufferReader에는 flush() 메소드가 없습니다. > 다음 삭제 log.txt에 파일 - - 그것을 자연이 temporaneo.txt 할 사항 log.txt 파일의 내용을 대처하는

의 순환이다 becuase

  • 위의 코드는, 당신의 목적을 해결하지 않습니다> 그런 다음 temporaneo.txt 이름을 log.txt로 변경하십시오.

    그래서 마지막으로 동일한 내용의 log.txt 파일이 있습니다. 이 같은

    최종 코드를 살펴 : -

    public void Attemps() { 
        try { 
         BufferedReader in = new BufferedReader(new FileReader(
           "log.txt")); 
         PrintWriter out = new PrintWriter(new File("temporaneo.txt")); 
    
         String line; 
         String params[]; 
    
         while((line = in.readLine()) != null) 
        { 
         params = line.split(";", 2); 
         if(client.equals(params[0])) 
         { 
          int accessi_aggiornati = Integer.parseInt(params[1]); 
          accessi_aggiornati--; 
          params[1] = String.valueOf(accessi_aggiornati); 
          out.print(params[0] + ";" + params[1]); 
         } 
         else 
         { 
          out.println(line); 
        } 
    } 
         // in.flush(); // log 
         out.flush(); // temporaneo 
         in.close(); 
         out.close(); 
    
         // Delete log and rename temporary file 
         File f1 = new File("log.txt"); 
         f1.delete(); 
         boolean isCreated = f1.createNewFile(); 
    
         System.out.println("Update complete=" + isCreated); 
        } catch (Exception e) { 
         e.printStackTrace(); 
        } 
    } 
    
  • +0

    문제는이 코드와 동일하므로 이상하다. – Debug

    관련 문제