2017-02-08 10 views
1

これで、今この問題が1週間続きました。ファイルから整数値の列を読み込んだ後にゼロになる

私が読んでいるファイルの最後の列から値を取得する必要があります。 しかし、私はwhileループの外側で配列を読み取ろうとすると、値の代わりにゼロが得られます。

しかし、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 

任意の提案は歓迎されています。

入力ファイルを共有する必要があると思われる場合は、私に教えてください。

ありがとうございました。

+1

上記の 'cla = new int [lines];'行を移動する必要がありますwhileループ – maskacovnik

+3

各繰り返しでは、配列を新しいもの(0だけを含む)で上書きします: 'cla = new int [lines];'。 – Berger

+1

そして 'row = 0' while whileループも – maskacovnik

答えて

2

あなたがにデータを格納するために使用しているアレイは、常にすべての反復で再初期化されているので、私はこれが今まで働くことができるとは思わない:

cla = new int[lines]; 

そしてまた、私は、もしわかりません(新しい行を実行するたびに行番号を0にする必要があります)。

row = 0; 
+0

ありがとうございました。 :) –

関連する問題