2016-06-30 11 views
2

をファイル内容を読み出すません。ジャワ - 、私は例えばと.txtファイルを、持っているこのコンテンツを

variable1="hello"; 
variable2="bye"; 
testing3="parameter"; 
whatisthis4="hello"; 
var5="exampletext"; 
example=3; 
wellthen=8; 
--- 

それはファイルを読み込み、行ずつ、罰金、私は方法を追加するまで、データを保存します。

このコード全体と他のリーダー(もちろん他の変数名を持つ)は、try-catchステートメントでラップされています。

String path_playlist = new File("").getAbsolutePath(); 
String fileName_playlist = path_playlist 
     + "/src/dancefusion/game/playlist.txt"; 
FileReader fr_playlist = new FileReader(fileName_playlist); 
BufferedReader br_playlist = new BufferedReader(fr_playlist); 

int track_counter = track_sum*9; 
String trackinfos[] = new String[track_counter]; 

while(track_counter < 0) 
{ 
    System.out.println("linecount="+track_counter); 
    trackinfos[track_counter] = br_playlist.readLine(); 
    System.out.println(trackinfos[track_counter]); 
    track_counter--; 
} 
System.out.println(Arrays.toString(trackinfos)); 

この例ではtrack_sumは1

whileループが一度にファイル1行を読み込むだけで、ヌルのを読み込む必要があります等しい:アップデート1

[null, null, null, null, null, null, null, null, null] 

を:

while-conditionが正しく設定されていません。 ..ありがとう!

修正バージョン:

while(track_counter < 0) 

しかし、今では私に ":9 ArrayOutOfBounds" との例外を提供します。

推測できますか?


最終更新日:

@GiorgiMoniavaで述べたように、単にJava配列のように読み込むために開始する前に1によってtrack_counterを削減するために必要な私は、0と感謝を開始します!

int track_counter = track_sum*8; 
String trackinfos[] = new String[track_counter]; 

track_counter--; 

while(track_counter >= 0) 
{ 
    System.out.println("linecount="+track_counter); 
    trackinfos[track_counter] = br_playlist.readLine(); 
    System.out.println(trackinfos[track_counter]); 
    track_counter--; 
} 

たぶん、あなたの一つは、私が間違っていたかを把握することができます...

もちろん、必要であれば、私はより多くの情報/コードを提供することができます! ありがとうございます!

+1

多分typo? while(track_counter> 0) – Apostolos

答えて

3

これは奇妙

while(track_counter < 0) 

に見えるあなたはループがこれまでに入力されますか? [0、N-1]

:あなたはサイズの配列を作成する場合はNだけインデックスを使用してアクセスすることができます:それは track_counterが範囲例外のうち、あなたの配列について9.

であることを(自分の出力から)私の推測です

+0

このtrack_counterで配列インデックスを参照しているので意味がありません。入力した場合、0になりますが、その部分に入るとは思いません。 – Apostolos

+0

@Apostolosに入る。 ps。ないのJavaの専門家で、ただの推測 –

+0

おかげで、これは最初の部分を解決し - 今ではそれがループに入っているようです - 私は は、ArrayIndexOutOfBoundsException取得していますしかし:あまりにもそれを取り除くためにどのように9 任意のアイデアを? ありがとう! –

1

これを試してください

while(track_counter > 0) 
    { 
     System.out.println("linecount="+track_counter); 
     track_counter--; 
     trackinfos[track_counter] = br_playlist.readLine(); 
     System.out.println(trackinfos[track_counter]); 

    } 
+0

私を助けてくれてありがとう - しかし、@GiorigeMoniavaはそれを最初に持っていた:S –

+0

いいえこのdoenstは、あなたはもちろんgiorrgiの答えを受け入れることができます:) – Apostolos

+0

私はもちろん両方の答えをupvoted :) 悲しいことに、私の投票はまだ15の評判ポイント –

関連する問題