2012-05-21 2 views
0

.txt 파일을 가지고 있으며 그 내용을 읽고 배열 목록으로 저장하고 싶습니다. .txt 파일의 데이터는 다음과 같이이다 :txt를 읽고 저장하는 중입니다. 배열 목록의 파일 내용

1984  1 0.20 25.10 4.40 11.20 0.60 4.80 0.10 0.00 5.90 22.50 5.90 12.70 6.00 3.80 0.60 10.70 4.20 0.00 0.00 0.00 7.90 4.00 23.70 3.20 5.80 3.00 0.60 6.00 1.70 7.50 1.20 

모두 한 줄, 년 1984 개월 동안 1 개월의 각각의 일에 대한 다른 값이다. 각 슬롯 (이상적으로 각 변수)을 다른 슬롯에 저장하여 인덱스별로 쉽게 액세스 할 수 있기를 바랍니다.

필자는 필요한 배열의 크기가 확실하지 않으므로 파일을 읽고 배열 목록에 변수를 저장하기 위해이 코드를 작성했습니다.

import java.io.*; 
import java.util.*; 

public class reader { 
    public static void main(String[] args) { 
     try { 
      BufferedReader reader = new BufferedReader(new FileReader(
        "2RainfallDataLanc.txt")); 
      String line = null; 
      ArrayList<String[]> rows = new ArrayList<String[]>(); 
      while ((line = reader.readLine()) != null) { 
       String[] row = line.split("/t"); 
       rows.add(row); 
      } 
      System.out.println(rows.toString()); 
     } catch (IOException e) { 
     } 
    } 
} 

오류 메시지가 나타납니다. 누군가 제 코드에 무슨 문제가 있다고 말할 수 있습니까? 출력을 보려면

for (String[] row : rows) { 
    System.out.println(Arrays.toString(row)); 
} 

를 사용

+3

어떤 오류 메시지가 나타 납니까? stacktrace를 게시하십시오. – Jeremy

+1

구분 기호가 탭이면 "\ t"로 이스케이프해야합니다. 다른 것들은 나에게 좋아 보인다. 아마도 더 나은 문자열 분할 기능을 사용하기 위해 commons-lang 프레임 워크를 살펴볼 수 있습니다 :) 행운을 빈다! –

+0

나는 [[Ljava.lang.String; @ 360be0, [Ljava.lang.String; @ 45a877 여기에 뭔가를보고 싶지 않다면 사과드립니다. 자바가 처음이에요. 그것은 system.out.println (rows.toString()) 때문입니까? 그렇다면 어레이에 저장된 모든 변수가 코드를보고 있습니까? – user1408525

답변

1

보십시오. 배열에 ToString이

유용 공백으로 구분되는 데이터 포인트를 가정하면 아무것도 생산하지, 당신은

String[] row = line.split("\\s+"); 

+ 그것의 앞에 심볼의 1 개 이상 발행 수를 의미합니다 (이 라인을 구문 분석을 시도 할 수 있습니다 \ s는 공백에 대한 속기입니다 (Regular Expressions in Java 참조)

+0

감사합니다. 도움이되었습니다. 배열의 출력을보기에 매우 유용합니다. 그러나 현재는 각 데이터 행이 배열의 요소로 저장됩니다. 가능하다면 각 변수를 별도의 요소로 저장하고 싶습니다. – user1408525

+0

split() 메서드가 작동합니까? – user1408525

+0

도움 주셔서 대단히 감사합니다. :) – user1408525