Mehrdimensionales Array aus txt.file auslesen

AleXusher

AleXusher

Mitglied
Hallo zusammen,
ich habe bisher ein Array[10][10][10], welches mit zufälligen Zahlen gefüllt wird. Ich schaffe es sogar, dieses Array in eine txt-Datei zu speichern. Unsortiert undeinfach pro Zeile eine Zahl (int). Das klappt gut und passt soweit.

Jetzt möchte ich aus genau dieser txt diese Zahlen in einem anderen Projekt dort in ein glech großes Array einlesen. Aber hier weiß ich nicht, wie ich das machen soll. Ich habe schon mit FileReader und Scanner herumprobiert, aber komme nicht weiter. Vielleicht kann mir hier jemand helfen? Das wäre super! Ich denke, dass das Problem schnell zu lösen ist, aber ich hocke schon seit 2 std dran und komme nicht weiter.

Array füllen und in txt speichern:
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
import java.io.File;


public class speichern{

    public static void main (String args[]) throws FileNotFoundException {
        PrintWriter outputFile = new PrintWriter("test.txt");
      
        int [][][]array = new int[10][10][10];
        int []array2 = new int[10];
        int i = 0;
        int j = 0;
        int k = 0;

        int min = 50;
        int max = 100;
          
        //Generate random int value from 50 to 100
        System.out.println("Random value in int from "+min+" to "+max+ ":");
      
        for (i=0; i < 10; i++) {
            for (j=0; j < 10; j++) {
                for (k=0; k < 10; k++) {
                    //System.out.println("Test");
                    array[i][j][k] = (int)Math.floor(Math.random()*(max-min+1)+min);
                    outputFile.println(array[i][j][k]);
                }
            }
            //array2[i] = (int)Math.floor(Math.random()*(max-min+1)+min);
            //outputFile.println(array2[i]);
        }
        outputFile.close();
      
        for (i=0; i < 10; i++) {
            for (j=0; j < 10; j++) {
                for (k=0; k < 10; k++) {
                    //System.out.println("Test");
                    System.out.print(array[i][j][k]+" ");
                }
                System.out.println("");
            }
        System.out.println("i ist "+i);
        }
  
        System.out.println(array[8][1][3]);
    }
  
}

Und hier bisher der Versuch aus der Datei zu lesen:

Java:
import java.io.BufferedReader;
import java.io.FileReader;

import java.util.Arrays;
import java.util.Scanner;

public class lesen {
    public static void main (String args[]) throws Exception {
        //Scanner sc = new Scanner(new BufferedReader(new FileReader("sample.txt")));
        FileReader inputFile = new FileReader("Datenzumlesen.txt");
        int boxes = 10; 
        int rows = 10;
        int columns = 10;
         
        int [][][] myArray = new int[boxes][rows][columns];
       
            for(int i=0;i<10;i++) {
                for (int j=0;j<10;j++) {
                    for(int k=0;k<10;k++) {
                        inputFile.read(myArray[i][j][k]); //(myArray[i][j][k]);
                    }
                }
            }

        inputFile.close();

        for (int i=0; i < 10; i++) {
            for (int j=0; j < 10; j++) {
                for (int k=0; k < 10; k++) {
                    //System.out.println("Test");
                    System.out.print(myArray[i][j][k]+" ");
                }
                System.out.println("");
            }
        System.out.println("i ist "+i);
        }
    }       
}

Ich weiß nur leider einfach nicht genau, wie scanner funktionieren. FileReader habe ich auch erfolglos probiert und die Dinge im Internet, die ich finde, behandeln alle nur eindimensionale Arrays. Ich hoffe mir kann jemand helfen. Danke schon einmal für jede Hilfe :)
 
Zuletzt bearbeitet:
mihe7

mihe7

Top Contributor
Du schreibst die numerischen Werte als Text raus. Die Umwandlung des numerischen Werts in Text passiert durch println automatisch. Jede Zahl schreibst Du in eine neue Zeile.

Folglich musst Du Text lesen und diesen wieder in einen numerischen Wert konvertierten. Das funktioniert z. B. mit einem Scanner. Hier sollte nextInt() passen.

Java:
import java.io.BufferedReader;
import java.io.FileReader;

import java.util.Arrays;
import java.util.Scanner;

public class lesen {
    public static void main (String args[]) throws Exception {
        Scanner sc = new Scanner(new BufferedReader(new FileReader("test.txt")));
        int boxes = 10; 
        int rows = 10;
        int columns = 10;
         
        int [][][] myArray = new int[boxes][rows][columns];
       
        for(int i=0;i<10;i++) {
            for (int j=0;j<10;j++) {
                for(int k=0;k<10;k++) {
                    myArray[i][j][k] = sc.nextInt();
                }
            }
        }
        sc.close();

        for (int i=0; i < 10; i++) {
            for (int j=0; j < 10; j++) {
                for (int k=0; k < 10; k++) {
                    //System.out.println("Test");
                    System.out.print(myArray[i][j][k]+" ");
                }
                System.out.println("");
            }
        System.out.println("i ist "+i);
        }
    }       
}
 
AleXusher

AleXusher

Mitglied
mihe7 danke, das hat perfekt funktioniert. Ich muss noch etwas dahinter steigen, wie genau, aber so klappt es. Danke! :)
 
mihe7

mihe7

Top Contributor
Das funktioniert natürlich auch so, wie @Barista vorgeschlagen hat.

Ansonsten: die nextInt-Methode des Scanners liest erstmal über alle Trennzeichen hinweg (standardmäßig sind das alle Whitespace-Zeichen), der folgende Text wird bis zum Trennzeichen (aber ohne dieses) eingelesen. Anschließend wird der eingelesene Text als int-Zahl interpretiert und diese wird zurückgegeben.

Der Witz ist also, dass Whitespace jeglicher Art überlesen wird. Daher spielt es auch keine Rolle, ob die Zahlen der Matrix in einer Zeile (mit z. B. Leerzeichen getrennt), tabellenförmig (Leerzeichen und Zeilenumbruch gemischt) oder in Zeilen (Zeilenumbruch nach jeder Zahl) ausgegeben wurden. Das Ding liest einfach eine Zahl nach der anderen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
OZAN86 Mehrdimensionales Array Java Basics - Anfänger-Themen 4
W Eigener Iterator soll mehrdimensionales Array durchlaufen Java Basics - Anfänger-Themen 4
nightsky_ Mehrdimensionales Array mit flatMap() ausgeben lassen Java Basics - Anfänger-Themen 6
N Alternative für mehrdimensionales Array Java Basics - Anfänger-Themen 25
K Mehrdimensionales Array Java Basics - Anfänger-Themen 4
Y Mehrdimensionales Array diagonal abfragen. Java Basics - Anfänger-Themen 5
N Mehrdimensionales float Array aus .txt-Datei einlesen? Java Basics - Anfänger-Themen 17
F Mehrdimensionales Array durchsuchen Java Basics - Anfänger-Themen 8
S Mehrdimensionales Array füllen Java Basics - Anfänger-Themen 1
N Unsymmetrisches mehrdimensionales Array in eindimensionales umwandeln Java Basics - Anfänger-Themen 2
S Mehrdimensionales Array sortieren Java Basics - Anfänger-Themen 3
H Mehrdimensionales Array - Inhalt auf Null überprüfen Java Basics - Anfänger-Themen 5
J mehrdimensionales array Java Basics - Anfänger-Themen 2
M Mehrdimensionales Array initialisieren Java Basics - Anfänger-Themen 3
M Methoden Daten aus einer SQL-Abfrage in eine mehrdimensionales Array einlesen Java Basics - Anfänger-Themen 7
F.S.WhiTeY Mehrdimensionales array, größere zahlen von innen nach außen Java Basics - Anfänger-Themen 3
S Mehrdimensionales Char-Array initialisieren Java Basics - Anfänger-Themen 17
Joy drei- und mehrdimensionales Array deklarieren Java Basics - Anfänger-Themen 9
D Datentypen mehrdimensionales Array meherer Typen möglich ? Java Basics - Anfänger-Themen 6
E Mehrdimensionales Array automatisch befüllen Java Basics - Anfänger-Themen 9
Z mehrdimensionales Array, Matrix "invertieren" Java Basics - Anfänger-Themen 4
B Mehrdimensionales Array + Tiefe Java Basics - Anfänger-Themen 4
F Mehrdimensionales Array zweite Diemnsion später Konstruieren? Wie Java Basics - Anfänger-Themen 2
B Mehrdimensionales Array Java Basics - Anfänger-Themen 9
bigbasti Mehrdimensionales Array instanzieren Java Basics - Anfänger-Themen 10
K Größe, mehrdimensionales Array Java Basics - Anfänger-Themen 6
S Mehrdimensionales Array füllen und kopieren! Java Basics - Anfänger-Themen 14
D Mehrdimensionales Array Java Basics - Anfänger-Themen 6
D String in mehrdimensionales Array Java Basics - Anfänger-Themen 7
D Mehrdimensionales Array sortieren Java Basics - Anfänger-Themen 5
S Mehrdimensionales Array+Methode+Rückgabeschwierigkeiten Java Basics - Anfänger-Themen 8
J Mehrdimensionales Array im Http-Request Java Basics - Anfänger-Themen 5
I dynamische mehrdimensionales Array Java Basics - Anfänger-Themen 8
G Rückgabe mehrdimensionales Array Java Basics - Anfänger-Themen 3
L zahlen in mehrdimensionales array einlesen Java Basics - Anfänger-Themen 3
C mehrdimensionales Object sortieren Java Basics - Anfänger-Themen 4
ApoY2k Datentypen Größe eines mehrdimensionales Arrays Java Basics - Anfänger-Themen 4
C Problem: Mehrdimensionales Arry Java Basics - Anfänger-Themen 10
A mehrdimensionales ArrayList Java Basics - Anfänger-Themen 7
Hamudi Bachir 2D Array eingabe vom Benutzer Java Basics - Anfänger-Themen 31
M Array auf Primzahlen prüfen Java Basics - Anfänger-Themen 7
sashady 2D-Array mit Zahlenmuster füllen Java Basics - Anfänger-Themen 4
t2im Java Array-Länge ändern? Java Basics - Anfänger-Themen 22
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
G ImageIcon in Byte-Array ablegen Java Basics - Anfänger-Themen 7
sashady ursprüngliche Array-Werte bei erneutem Aufruf? Java Basics - Anfänger-Themen 7
A Array Ansprache einer Zelle über Punktnotation? Java Basics - Anfänger-Themen 3
A Array einlesen und ausgeben Java Basics - Anfänger-Themen 13
moiss002 Umgebungsvariable Kein Zugriff auf ein Array Java Basics - Anfänger-Themen 7
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
nonickatall Input/Output Zeichenkette in Array zerlegen Java Basics - Anfänger-Themen 2
E In Array Werte einfügen? Java Basics - Anfänger-Themen 5
S Wort einlesen Array ausgeben Java Basics - Anfänger-Themen 4
HighLife Bestimmte Werte aus Array zählen Java Basics - Anfänger-Themen 15
Yasemin bahar zweidimensionales Array Java Basics - Anfänger-Themen 5
Zeppi Vergleich von Array-Inhalten Java Basics - Anfänger-Themen 14
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
L ArrayList<String> --> double[] array Java Basics - Anfänger-Themen 18
javaluke Erste Schritte Array nach Datentyp sortieren Java Basics - Anfänger-Themen 16
D Zufällige Auswahl aus einem angelegten Array? Java Basics - Anfänger-Themen 10
Zeppi OOP Array in Objekten Java Basics - Anfänger-Themen 4
K Wie kontrolliere ich ob ich die Zahl in meinem Array schon hab? Java Basics - Anfänger-Themen 9
O 2d Array einmal Eins Java Basics - Anfänger-Themen 2
B Array bei jeder Eingabe um eins erweitern Java Basics - Anfänger-Themen 3
A Löschen von Leerzeichen in einem char array ohne methoden Java Basics - Anfänger-Themen 6
R Array mit Unter- und Obergrenze ganze Zahlen dazwischen erscheinen nicht Java Basics - Anfänger-Themen 1
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
J null exception Array Java Basics - Anfänger-Themen 5
H Array Elemente Java Basics - Anfänger-Themen 17
J Array Actionlistener Java Basics - Anfänger-Themen 9
H Gesamtabweichung mit Array berechnen Java Basics - Anfänger-Themen 2
T Methode um Array mit for-each-Schleife auszulesen Java Basics - Anfänger-Themen 7
T Elemente aus Array zu TableView JavaFX übertragen Java Basics - Anfänger-Themen 2
I Array in umgekehrter Reihenfolge - Erklärung - Java Basics - Anfänger-Themen 3
T Zahl in Array ersetzen Java Basics - Anfänger-Themen 2
O 2D-Array nach einer Spalte sortieren Java Basics - Anfänger-Themen 22
I Letztes, erstes Element vom Array Java Basics - Anfänger-Themen 9
J Array an Combobox übergeben Java Basics - Anfänger-Themen 5
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1
D Doppelte For Schleife / Array Java Basics - Anfänger-Themen 3
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
H Minimum in einem Array bestimmen Java Basics - Anfänger-Themen 7
A Einmaleins 2D Array Java Basics - Anfänger-Themen 1
TimoN11 Array -> Schleife wieder von vorne durchlaufen lassen Java Basics - Anfänger-Themen 1
H Methode mit Array als Rückgabe This method must return a result of Type int[] Java Basics - Anfänger-Themen 2
O System.out array Java Basics - Anfänger-Themen 4
G Erste Schritte Array Mittelwert Methode Programmieren Java Basics - Anfänger-Themen 5
T Variable in for Schleife ansprechen ohne Array ? Java Basics - Anfänger-Themen 25
X Zwei Dimensionales Array prüfen Java Basics - Anfänger-Themen 1
J Array Elemente werden nicht gefunden! Java Basics - Anfänger-Themen 6
K Rahmen erstellen mit mehrdimensionalem Array Java Basics - Anfänger-Themen 1
TimoN11 Array mit unterschiedlichen längen aktualisieren, dann als Methodenwert einsetzen Java Basics - Anfänger-Themen 1
G Bubblesort Array der Größe 10 Java Basics - Anfänger-Themen 1
M Initialen mit Array wiedergeben Java Basics - Anfänger-Themen 3
J Objekt-Array dynamischer Länge aus Benutzereingaben erstellen Java Basics - Anfänger-Themen 6
G Java 2-dimensionalen int-Array Summe Java Basics - Anfänger-Themen 2

Ähnliche Java Themen


Oben