2017-09-07 12 views
0

内容をテキストファイルに配列で保存したいとします。ここでtxtファイルのデータは以下のとおりです。JAVA:txtファイルから3D配列にコンテンツを保存する

0.8585781857237149 0.27817454182457335 -0.8050499953993335 

0.6370714882668496 0.2972334455862271 -0.03239256370254662  

-0.27150466294617615 0.6458147357741209 -0.8755197569879973   



0.8714523367008264 0.5051711395439467 0.7632793840501568  

0.9722198583553305 -0.6540230961515898 0.5498519669064881 

-0.1289712393377327 0.5729094349133539 -0.32452314324200193  

私はこのコードを実行しようとしています

FileInputStream in = new FileInputStream("file.txt"); 
BufferedReader br = new BufferedReader(new InputStreamReader(in)); 

        while ((line = br.readLine()) != null) {       

         for (z=0; z<2; z++){  
          for (y=0; y<9; y++){ 
           for (x=0; x<5; x++){ 
            filearray[x][y][z]=br.readLine(); 
           } 
          } 
         } 

         System.out.println(Arrays.toString(filearray)); 
        } 

をしかし、出力は私にこのようなエラーメッセージとエラーが発生しました:

[[[Ljava.lang.String;@2a3046da, [[Ljava.lang.String;@2a098129, [[Ljava.lang.String;@198e2867, [[Ljava.lang.String;@12f40c25, [[Ljava.lang.String;@3ada9e37] 

私のコードに間違いがありますか?前もって感謝します。

+0

エラーメッセージが表示されますか?私はそれが実際にあなたが印刷している出力だと信じています。 –

+1

"出力は私にerror_"それはエラーではありません、それは配列から出力された 'toString()'が有効です。 – csmckelvey

+0

その配列から特定のオブジェクトを印刷してみてください。配列全体を印刷しようとすると、常に配列にHashCodeが提供されます。直接値ではありません。 System.out.printlnを試してみてください(Arrays.toString(filearray [x] [y] [z]));あなたのforループで。 – procrastinator

答えて

0

Arrays.toString()は、配列の内容を返す関数です。あなたは3D配列を持っているので、最初の配列の中に配列を出力します。その関数を使用して配列を "3次元"でのみループする必要があります。

より明確にする:あなたはあなたが好むが、私はあなたがそれを行う方法を理解することができると思うためにそれらを印刷し、それを変更する必要が

for (x=0; x<5; z++){  
    for (y=0; y<9; y++){ 
     System.out.println(Arrays.toString(filearray[x][y])); 
    } 
} 

+0

forループでこの 'System.out.println(Arrays.toString(filearray [x] [y] [z]));を試しました。 残念ながら、配列型の 'toString'(long [])メソッドは引数(String)には適用できません。 内容はすべて配列に格納されていますか? – lcc

+0

私の答えをもう一度読んでください。 'filearray [x] [y]'の内容は配列なので、 'System.out.println(Arrays.toString(filearray [x] [y]);'で試してみました。 'System.out.println(Arrays.toString(filearray [x] [y] [z]));'を使用すると、 'String'要素に対して' Arrays'関数を使用しようとしています。 –

関連する問題