2013-12-12 2 views
1

파일의 출력을 배열에 저장하는 방법에 대한 질문이 있습니다. 필자의 경우 모든 파일을 배열에 저장하려고합니다. 내가 한 것처럼 컴파일러는 "진술이 아니다"고 불평한다. 이 문제를 어떻게 해결할 수 있습니까? 어떤 도움이라도 대단히 감사하겠습니다. 필요한 경우java 파일의 출력을 배열에 저장하는 중

double token[] = new double[9]; 

      File filename = new File("/Users/timothylee/gravity1.txt"); 

      Scanner inFile = new Scanner(filename); 

      while(inFile.hasNext()){ 
       //////////////// token[] = inFile.nextDouble(); 
       System.out.println(token); 
      } 
      inFile.close(); 

는, 여기에 파일입니다 :

gravity1.txt: 
     3.70 
     8.87 
     9.79 
     3.70 
     24.78 
     10.44 
     8.86 
     11.13 
     0.61 

답변

0
double token[] = new double[9]; 

int i = 0; 
while(inFile.hasNext()){ 
    token[i] = inFile.nextDouble(); 
    System.out.println(token); 
    i++; 
} 
inFile.close(); 

이 파일을 가정 한 것입니다 : 여기에 자바 7 버전입니다.

-2

이지도 자바 8 간단 할 것이다 다음 (오류의 라인이 백 슬래시 앞에는) 내 코드입니다. 만 9 선이

File filename = new File("/Users/timothylee/gravity1.txt"); 

    List<Double> doubleList = new ArrayList<Double>(); 
    try (BufferedReader reader = new BufferedReader(new FileReader(file))) { 
     String line; 
     while ((line = reader.readLine()) != null) { 
      doubleList.add(Double.parseDouble(line)) 
     } 
    } 

    double[] doubles = new double[doubleList.size()]; 
    for (int i = 0; i < doubleList.size(); i++) { 
     doubles[i] = doubleList.get(i); 
    } 
1
 ArrayList<Double> token = new ArrayList<Double>(); 

     File filename = new File("/Users/timothylee/gravity1.txt"); 

     Scanner inFile = new Scanner(filename); 

     while(inFile.hasNext()){ 
      token.add(inFile.nextDouble()); 
     } 
     inFile.close(); 
     System.out.println(Arrays.toString(token)); 

그냥 ArrayList를 사용하면 삶을 더 힘들게 만들지 않습니다. ;) 이것은 또한 파일에서 얼마나 많은 데이터/라인이 있는지에 관계없이 더 유연 해집니다.

+0

더 나은 간단한 답을 유지하고이 – Yitzchak

+0

@Yitzchak 같은 질문에 대해 가능한 한 영업 이익의 코드를 많이 사용하는 무엇을 먹으 렴 : 당신은이 같은 다음의 두 배를 넣어 경우 자바 말할 필요 나는 실제로 ...? 코드 2 줄과 답 2 문장 변경됨) – Ben

+0

사용 된 코드 OP는 거의 C++ 일 수 있으며 그가 이해하는 방식으로 작성되었습니다. 추가해야 할 모든 것은 배열을 반복 할 변수였습니다. 그냥 내 수업 스타일 (아직 다소 초보자가되고있다) :) – Yitzchak

0

토큰 배열에 아무 것도 지정하지 않아서 "진술이 아닙니다"오류가 발생합니다.

double token[] = new double[9];
File filename = new File("/Users/timothylee/gravity1.txt");

 Scanner inFile = new Scanner(filename); 
     int i = 0; 
     while(inFile.hasNext()){ 
      token[i] = inFile.nextDouble(); 
      System.out.println(token); 
      i++; 
     } 
     inFile.close(); 
관련 문제