2013-04-23 2 views
0

텍스트 파일의 첫 번째 라인을 읽어 스캐너이 내 코드입니다

public static void main(String[] args) { 

    File source = // 


    Scanner s = null;  
    int lineNumber =0; 
     ArrayList<ArrayList<Integer>> tagsArray = new ArrayList<>(); 
    try { 

     s= new Scanner(source); 
    while (s.hasNext()) { 

      String[] cols = s.nextLine().split(" "); 

      for (int i = 0; i < cols.length; i++) { 
       if (cols[i].equals("1")) 
        tagsArray.get(i).add(lineNumber); 
       } 
      lineNumber++; 

     } 
    } catch (Exception e) { 
     // TODO: handle exception 
    } 
} 

나는 그것이 전체 텍스트 파일을 읽을 수는 있지만 내가 사용하는 때 그것은 단지 첫 번째 줄 이유를 읽을 문에 대한 삭제

?를

+0

나는 BufferedReader를 사용하면 파일을 읽는 스캐너를 사용하는 것보다 낫다고 말할 수 있습니다. http://www.mkyong.com/java/how-to-read-file-from-java-bufferedreader-example/ – user2280897

답변

3

당신은 Exception 이겠지만 잡는 대신 잡아서 숨길 수 있습니다. 이것은 매우 나쁩니다! 적어도 예외의 스택 추적을 인쇄해야합니다.

당신은 액세스하려고 : tagsArray가 비어

tagsArray.get(i).add(lineNumber); 

때. 액세스하기 전에 각 ArrayList<Integer>tagsArray에 인스턴스화해야합니다.

+0

에서 try catch 블록을 사용하는 것이 좋지 않습니까? 어떻게 예외 처리 할 수 ​​있습니까? – nawara

+1

시도 블록이 좋습니다. 하지만 catch 블록 안에 아무것도하지 않는 것은 나쁘다. 적어도'e.printStackTrace() '를 사용하십시오. – BobTheBuilder

+2

또한 if 또는 for 각각 후에 {및}을 사용하는 것이 더 좋습니다. – BobTheBuilder