2017-02-08 5 views
1

그래서이 문제가 일주일 동안 지속되었습니다.파일에서 정수 값의 열을 읽은 후 0이됩니다.

내가 읽고있는 파일의 마지막 열에서 값을 가져와야합니다. 하지만 내가 while 루프 밖에서 배열을 읽으려고하면 값 대신 0이 생깁니다.

하지만 while 루프 내부에서 동일한 배열을 읽으면 완벽하게 값을 얻을 수 있습니다.

BufferedReader br2 = new BufferedReader(new FileReader("/home/manofsteel/yeast_training.txt")); 
    // Starting to read a file line by line. 
     while((line = br2.readLine()) != null) 
     { 
     row = 0; 
     String[] valsNew = line.trim().split("\\s+"); /* Getting rid of all 
                 spaces since the file 
                 contains a lot of them. */ 

     cla = new int[lines]; 
     cla[row] = Integer.parseInt(valsNew[8]); /* 8 because i need the 
               values from last column. */ 


      row++; 

     } 
     for(int i=0;i<cla.length;i++) 
     { 
       // Trying to print back that array. 
       System.out.println("x"+cla[i]); 
     } 

} 

내가 무엇입니까 출력은

x0 
x0 
x0 
x0 

내가 원하는 출력

x4 
    x1 
    x1 
    x1 
    x2 
    x7 
    x2 
    x7 

어떤 제안을 환영합니다.

내가 입력 파일을 공유해야한다고 생각한다면. 저에게 알려주세요.

감사합니다.

cla = new int[lines]; 

또한, 저는 잘 모르겠어요 :

+1

'cla = new int [lines];' while 루프 – maskacovnik

+3

각 반복에서 배열에 새로운 배열 (0 만 포함)을 덮어 씁니다 :'cla = new int [lines];'. – Berger

+1

위의'row = 0' while while loop도 – maskacovnik

답변

2

나는 당신이 항상 모든 반복에 다시 초기화에 데이터를 저장하는 데 사용하는 배열이 있기 때문에이 이제까지 일 수 있다고 생각하지 않습니다 새로운 반복을 실행할 때마다 항상 행을 0으로 설정하고 싶습니다. (결국 행 ++를하고 있기 때문에) :

row = 0; 
+0

고마워요. :) –