2014-04-18 6 views
0

파일의 내용을 배열로 가져 오려고합니다. 파일 내용은 양수 및 음수입니다.스캐너를 사용하여 파일 내용을 배열에 넣기

이것은 내가 배열을 얼마나 크게 만들어야 하는지를 발견 한 것입니다. inFile이 제 스캐너입니다. inFile의 내용을 인쇄 할 수 있지만 배열에 들어 가지 않습니다. 난 그냥 null 값을 얻을.

int arrayLength = 0; 
    while (inFile.hasNextInt()){ 
     inFile.nextInt(); 
     arrayLength++; 
    } 

이것은 파일 내용을 배열로 가져 오려고 시도한 것입니다.

int[] nums = new int[arrayLength]; //make array according to arrayLength 
    inFile.reset(); 
    //fill array with values from file 
    for (int n = 0; n > arrayLength; n++) { 
     nums[n] = inFile.nextInt(); 
    } 

도움 주셔서 감사합니다.

답변

0

첫 번째 루프에서 nextInt()을 사용하면 스트림 위에 가상 커서가 "이동"되어 다시 돌아갈 수 없습니다. 당신이 처음으로 nextInt()를 호출 할 때, 그리고

17 
-15 
13 

17에서 -15로 커서 이동 :

는의는 같은 입력 있다고 가정 해 봅시다. 따라서 각 루프에서 nextInt()을 호출하면 반드시 두 번째 루프에서 null 값이 발생합니다.

당신은

+0

나는 그게 Scanner.reset() 메소드는 고정 무슨 생각 (고정 된 크기를 가지고 있지 않는) 어쩌면 목록을 dynamic arrays를 사용하려고하거나해야한다. 커서가 처음으로 돌아 가야하지 않습니까? – clenard

+0

참조 http://stackoverflow.com/questions/13991494/resetting-a-nextline-scanner –

+0

[javadoc for scanner] (http://docs.oracle.com/javase/8/docs/api/java)를보십시오. /util/Scanner.html#reset--), delimeter, locale 및 radix 만 재설정합니다. – azurefrog

관련 문제