2010-04-03 2 views
0

특정 시간에 위치에 자동으로 쓰기 위해 거의 200 개의 파일을 선택했습니다. 쿼츠 스케쥴러에 별도의 작업 이름을 만들었습니다. 작업이 한 번에 트리거됩니다. 모든 파일이 작성된 후에 만 ​​파일을 읽을 수 있습니다. 하나의 파일을 작성한 후에 읽을 수 없습니다. 하나의 파일을 작성한 후 FileWriter를 닫았습니다. 파일에 액세스하여 하드 디스크에 기록 된 읽기는 무엇입니까?Quartz Scheduler에서 자동으로 FileWriter를 사용하여 파일을 쓸 때의 문제점

파일 f = 새 파일 (directory.getAbsolutePath() + File.separatorChar + context.getTrigger(). getJobName() + "). SQL "); System.out.println (f.getAbsolutePath()); fw = 새 FileWriter (f, true); System.out.println ("DBname은"+ scheduleInfo.get ("dbName")); fw.append ("CREATE DATABASE/! 32312 존재하지 않는 경우/" + scheduleInfo.get("dbName") + "/*! 40100 DEFAULT CHANACTER SET latin1 * /; \ nUSE " + scheduleInfo.get("dbName") + "; \ n"); ps1 = con.prepareStatement (dbname_exist); ps1.setString (1, (String) scheduleInfo.get ("dbName")); rs1 = ps1.executeQuery(); if (rs1.next()) { backup_exits = true;

 } 

     //if (br.readLine() == null||!backup_exits) 
     if (br.readLine() == null){ 
      ps = con.prepareStatement(backup_data); 
      ps.setString(1, (String) scheduleInfo.get("sch_id")); 
      ps.executeUpdate(); 
      System.out.println("Failed to download file"); 
     } 
     else { 
      while ((line = br.readLine()) != null) { 
       System.out.println(line); 
       fw.append(line + "\n"); 
      } 
     } 

       br.close(); 
       fw.close(); 
+0

일부 예제 코드를 게시하십시오. 특히, 파일을 읽으려고하는 코드와 그 코드를 발생시키는 코드 (또는 무엇이든). –

답변

0

파일 출력 스트림이 제대로 닫혀 있는지 확인해야합니다. 파일 객체 인스턴스를 더 가까이 닫으십시오.

+0

* "파일 객체 인스턴스도 닫습니다"* 어떻게? – BalusC

+0

죄송합니다 ... 파일 객체에 대한 참조를 보유하고 있지 않은지 확인하십시오. 내가 그 문제를 일으키는 지 확실하지 않지만 쓰기에 사용 된 파일 객체에 대한 모든 참조를 없애지 않으면 파일 읽기에 문제가 발생했습니다. – Fazal