2017-09-07 2 views
0

Ich möchte den Inhalt in einer Textdatei in einem Array speichern. Hier sind die Daten der txt-Datei:JAVA: Inhalt von txt-Datei zu 3D-Arrays speichern

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  

Ich habe versucht, diesen Code auszuführen:

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)); 
        } 

aber der Ausgang gab mir einen Fehler mit einem solchen Fehlermeldung:

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

Wurde in meinem Code ein Fehler gemacht? Danke im Voraus.

+0

Sind Sie sicher, dass es sich um eine Fehlermeldung handelt? Ich glaube, es ist tatsächlich die Ausgabe, die Sie drucken –

+1

"_der Ausgang gab mir einen Fehler_" Das ist kein Fehler, der gültig ist 'toString()' Ausgabe von einem Array. – csmckelvey

+0

Versuchen Sie, das spezifische Objekt aus diesem Array zu drucken. Wenn Sie versuchen, ein ganzes Array zu drucken, stellt es immer einen HashCode bereit. Nicht die direkten Werte. Probieren Sie System.out.println (Arrays.toString (Dateiarray [x] [y] [z])); in deiner for-Schleife. – procrastinator

Antwort

0

Arrays.toString() ist eine Funktion, die Ihnen den Inhalt eines Arrays zurückgibt. Rate mal, du hast ein 3D-Array, also druckt es die Arrays innerhalb des ersten. Sie sollten die Arrays mit dieser Funktion nur in der "3. Dimension" durchlaufen.

Um mehr klar:

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

Sie haben es zu modifizieren, um sie in der Reihenfolge drucken Sie es vorziehen, aber ich denke, Sie die Art und Weise, es zu tun zu verstehen.

+0

Ich habe dieses 'System.out.println (Arrays.toString (Dateiarray [x] [y] [z]));' in der for-Schleife versucht. Leider ist die Methode 'toString' (long []) im Typ Arrays nicht anwendbar für die Argumente (String). Sind die Inhalte alle im Array gespeichert? – lcc

+0

las meine Antwort noch einmal. Ich habe dir gesagt, dass du es mit 'System.out.println (Arrays.toString (filearray [x] [y])) versuchen soll;', weil der Inhalt von 'filearray [x] [y]' ein Array ist. Wenn Sie 'System.out.println (Arrays.toString (filearray [x] [y] [z]))};' verwenden, versuchen Sie eine 'Array'-Funktion für ein' String'-Element zu verwenden. –