2012-03-05 2 views
0

나는 file.It에서 읽어야하는 프로그램을 가지고 있지만, 모든 양의 데이터를 읽지 않습니다. 동일한 클래스에서 동일한 방식으로 수행되는 다른 프로그램으로 같은 위치에서 동일한 파일을 읽으려고하면 전체 파일. 그것은 항상 어떤 ackward 문자가 있지만이없는 있는지 확인 같은 곳 이예요에서 읽기를 정지프로그램이 전체 파일을 읽지 못하게 할 수 있습니까?

   if (i >= 1) { 
       try { 

       file = new File("Tabel " + i + " " + timeLine + ".csv"); 
       fw = new FileWriter(file); 
       fw.write(FileChooserSave.getInstance().getStringArray()[i]); 
       if (i == 1) { 
        FileInputStream fis = new FileInputStream(file); 
        InputStreamReader isr = new InputStreamReader(fis,"UTF-8"); 
        BufferedReader br = new BufferedReader(isr); 
        String line; 
        while ((line = br.readLine()) != null) { 
         System.out.println(line); 
        } 
        fis.close(); 
        isr.close(); 
        br.close(); 

       } 
      } catch (IOException ex) { 
       Logger.getLogger(Frame.class.getName()).log(Level.SEVERE, null, ex); 
      } finally { 
       try { 
        fw.close(); 
       } catch (IOException ex) { 
        Logger.getLogger(Frame.class.getName()).log(Level.SEVERE, null, ex); 
       } 
      } 
     } 

: 여기 는 두 프로그램에서 사용되는 코드입니다. 나는 또한 내가 읽었던 파일이 .csv 형식이고 꽤 큰 파일이라는 것을 언급해야한다. 그러나 이것이 문제인지는 모르겠다. 미리 감사드립니다.

+0

"동일한 수업으로 같은 방식으로 수행되는 다른 프로그램"이란 무엇을 의미합니까? 그리고 로그에 오류가 있습니까? – DNA

+0

다른 프로그램이 의미하는 바는 정확히 동일한 위치에서 똑같은 파일을 읽는 동일한 코드로 만들어진 완전히 새로운 프로젝트입니다. 먼저 그 비난이 변수의 이름에 속하는 것이지만 여러 번 확인했습니다. 아니요. 변수 이름이 문제의 원인입니다. – Carolik

답변

0

당신은 파일을 읽고 :

당신이 자바 7 사용하는 경우, 한 번에 파일의 모든 라인을 읽는 데 도움이 될 수있는 간단한 명령이 있습니다. 이로 인해 모든 쓰기가 디스크로 플러시되지 않을 수 있습니다.

새 FileInputStream 전에 호출을 닫으려고하십시오.

+0

나는 그것을 깨달았다. 나는 플러시를 한 후에 모든 것이 잘 작동했다. 어쨌든 당신의 대답에 대해 대단히 감사합니다! :) – Carolik

3

흠 ... 솔루션이 약간 복잡하여 문제를 일으킬 수있는 부분이 많습니다.

디버그 모드에서 응용 프로그램을 실행하려고 시도했을 때 이 "정지"하면 스레드가 단순히 일시 중지합니다. Eclipse에서 데이터를 기다리는 곳을 알 수 있습니다. FileWriter가 열려있는 동안

Path file = Paths.get(filename); 
List<String> lines = Files.readAllLines(file, Charset.defaultCharset()); 
관련 문제