Integers aus Textdatei auslesen und mehrere Arrays erstellen

Narooma

Mitglied
Hallo Leute, ich benötige Hilfe bei folgendem Problem, da ich einfach nicht weiterkomme. Ich habe bereits verschiedene Dinge ausprobiert, die ich im Netz gefunden habe, aber es funktioniert einfach nicht (zugegeben, was da passiert ist mir nicht ganz klar).

Ich habe eine Textdatei, die nur Integers enthält. In der ersten Zeile steht nur ein einziger Wert (n). In allen danach folgenden Zeilen stehen immer 3 Werte. Der int-Wert in der ersten Zeile gibt an, wie viele nachfolgende Zeilen noch kommen werden. Es müssen nun drei Arrays erstellt werden, wobei im ersten Array aus den Zeilen 2-n+1 immer der erste Eintrag enthalten sein soll, im zweiten Array aus den Zeilen 2-n+1 immer der zweite Eintrag enthalten sein soll und im dritten Array aus den Zeilen 2-n+1 der dritte Eintrag enthalten sein soll.

Wie genau das geschieht, ist völlig egal. Wäre auch möglich zuerst, nachdem "n" eingelesen wurde, ein Array der Länge 3*n zu erstellen und erst einmal alle Werte in dieses eine Array einzulesen und dann erst später die Werte auf die benötigten drei Arrays aufzuteilen. Für irgendeine Lösung bin ich sehr dankbar.

Hier ein kurzes Beispiel, wie das Textdokument aussieht und was am Ende rauskommen muss:

4
3 8 3
2 7 3
1 4 8
2 8 3

erstes_array = {3,2,1,2}
zweites_array = {8,7,4,8}
drittes_array = {3,3,8,3}
 

Joose

Top Contributor
Du liest die 1.Zeile und erstellst dann 3 Arrays mit der eingelesene Länge.

Dann liest du Zeile für Zeile ein, splittest den String beim Leerzeichen und wandelst jedes Zahl in ein "int" um welches du dann im Array speicherst.

Code:
int laenge = wandle in int um (lies 1.zeile)

array1 = new array(laenge)
array2 = new array(laenge)
array3 = new array(laenge)

for(int i = 0; i < laenge, i++) {
string zeile = nächste zeile lesen
  ....

array1[i] = zahl1;
...
}
 
K

kneitzel

Gast
Hallo,

Du kannst die Datei lesen - Zeile für Zeile.
Die erste Zeile wandelst Du direkt in eine Zahl um um dann die drei Arrays zu erzeugen.
Jede weitere Zeile wird dann aufgeteilt (split Aufruf) um dann die drei Zahlen zu bekommen (Müssen natürlich auch jeweils in eine Zahl gewandelt werden).
Nun kannst Du die Zahlen in die Arrays schreiben.

Hast Du diesbezüglich schon etwas probiert? Woran ist es gescheitert? Wo brauchst Du Hilfe?

Konrad
 

Narooma

Mitglied
Danke für die Antworten. Ich bin gerade noch mal dabei es zu probieren. Wenn ich die Zeilen jeweils in einen String einlese, wie kann ich dann wieder an die Zahlen kommen? Wenn der String z.B. "1 2 3" ist, wie kann man diese Zeichen dann wieder in einen int umwandeln?
 
K

kneitzel

Gast
Also das sind ja 3 Zahlen und nicht nur eine. Diese müsstest Du also erst einmal splitten - String hat dazu die Methode split.

Wenn Du einen String in eine Zahl umwandeln willst, dann gibt es dafür in der Integer Klasse parseInt.

Die Dokumentation zu diesen Methoden sind in der API Dokumentation von Oracle (auf Englisch), aber Du wirst per google auch sehr viel dazu finden.

Konrad
 

Narooma

Mitglied
Ich habe mir jetzt folgendes gebastelt, und nun ja, es funktioniert :D Das ist die Hauptsache :) Wie würde man z.B. diese dämliche If-Abfrage wegkriegen?

Java:
boolean erste_zeile = true;
int N = 0;
int[] array1 = new int[1];
int[] array2 = new int[1];
int[] array3 = new int[1];
int zaehler = 0;
String zeile="";
try {
   BufferedReader b = new BufferedReader(new FileReader("datei_pfad...txt") ;
   while((zeile = b.readLine()) != null) {
     if(erste_zeile == true) {
       N = Integer.parseInt(zeile);
       array1 = new int[N];
       array2 = new int[N];
       array3 = new int[N];
       erste_zeile = false;
     } else {
       String delims = "[ ]+";
       String[] zahlen = zeile.split(delims);
       array1[zaehler] = Integer.parseInt(zahlen[0]);
       array2[zaehler] = Integer.parseInt(zahlen[1]);
       array3[zaehler] = Integer.parseInt(zahlen[2]);
       zaehler += 1;
     }
   }
   b.close();
} catch (IOException e) {
   System.out.println("Fehler: "+e.toString());
}
 

Joose

Top Contributor
Bitte Code in Code-Tags packen :) -> [code=java] /* dein code */ [/code]

Zu deiner Frage:
Einfach die 1.Zeile der Datei vor der Schleife lesen siehe meinen Pseudocode oben.
 

Flown

Administrator
Mitarbeiter
So:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
import java.io.StringReader;
import java.util.Arrays;

public class Test {
	public static void main(String... args) {
		String input = "4\r\n" +
				"3 8 3\r\n" +
				"2 7 3\r\n" +
				"1 4 8\r\n" +
				"2 8 3";
		int[][] result = readFile(new StringReader(input));
		for (int i = 0; i < result.length; i++) {
			System.out.println(Arrays.toString(result[i]));
		}
		
	}
	
	public static int[][] readFile(Reader reader) {
		int[][] result = null;
		try (BufferedReader br = new BufferedReader(reader)) {
			int n = Integer.parseInt(br.readLine());
			result = new int[3][n];
			for (int i = 0; i < n; i++) {
				String[] split = br.readLine().split("\\s+");
				for (int j = 0; j < split.length; j++) {
					result[j][i] = Integer.parseInt(split[j]);
				}
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return result;
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Wie kann ich den Bereich eines Integers begrenzen? Java Basics - Anfänger-Themen 2
J maximaler Wert eines Integers Java Basics - Anfänger-Themen 14
S Wie erhöhe ich den Wert von mehren Integers auf einmal? Java Basics - Anfänger-Themen 5
B seltenes Vorkommen eines Integers in einem Array Java Basics - Anfänger-Themen 13
H Methoden Array auf Vorkommen eines Integers überprüfen Java Basics - Anfänger-Themen 2
J Liste von Integers mit Selection Sort sortieren Java Basics - Anfänger-Themen 3
A Maximal und Minimalgröße eines Integers Java Basics - Anfänger-Themen 3
G Länge eines Integers ermitteln? Java Basics - Anfänger-Themen 38
C Länge/Anzahl der Stellen eines Integers Java Basics - Anfänger-Themen 8
H Leere Zeilen in Textdatei löschen lassen Java Basics - Anfänger-Themen 5
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
N Textdatei aus Resourcen-Ordner eines Projekts/ jar-file lesen Java Basics - Anfänger-Themen 4
javapingu Jeglichen Inhalt einer Textdatei nach Zeile n löschen Java Basics - Anfänger-Themen 8
izoards Textdatei Human unreadable abspeichern Java Basics - Anfänger-Themen 17
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
LeoDerKek Textdatei in JAR-File Java Basics - Anfänger-Themen 4
KogoroMori21 Textdatei einlesen im Array (Selection Sort Algorithmus) Java Basics - Anfänger-Themen 3
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
Ray19941 Über BlueJ Textdatei selbstständig erstellen lassen Java Basics - Anfänger-Themen 2
NeoLexx Datenströme Lesen und Schreiben einer Textdatei Java Basics - Anfänger-Themen 2
D Input/Output Mehrzeiligen String aus Textdatei erstellen Java Basics - Anfänger-Themen 5
M Datenbank oder Textdatei? Java Basics - Anfänger-Themen 4
X Textdatei: zwei-zeilenweise gleiche Zeilen rausschmeißen Java Basics - Anfänger-Themen 21
A Textdatei mit stream einlesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
L Objekt aus Textdatei in ArrayList speichern Java Basics - Anfänger-Themen 4
J Wörter aus Textdatei suchen Java Basics - Anfänger-Themen 2
S Importieren einer Textdatei Java Basics - Anfänger-Themen 2
x-tshainge Innerhalb von Textdatei addieren Java Basics - Anfänger-Themen 9
Jinnai4 Werte in Textdatei ändern Java Basics - Anfänger-Themen 2
JDimi Textdatei mit beliebig vielen Zeilenumbrüchen erstellen Java Basics - Anfänger-Themen 2
it_is_all Bild-Pfad wird gefunden, nicht aber Textdatei-Pfad Java Basics - Anfänger-Themen 8
M Best Practice Daten-Import /Trabsfomration aus Textdatei Java Basics - Anfänger-Themen 12
G Wert in Textdatei ersetzen? Java Basics - Anfänger-Themen 2
J Daten einer Textdatei in ein JTable importieren. Java Basics - Anfänger-Themen 3
C Input/Output Textdatei vom Java-Programm nicht geladen Java Basics - Anfänger-Themen 58
A Textdatei mit BufferedReader einlesen Java Basics - Anfänger-Themen 0
T Länge einer Textdatei Java Basics - Anfänger-Themen 11
S Übertragen einer Textdatei in ein 2d-Array Java Basics - Anfänger-Themen 2
T Textdatei öffnen und ans Ende scrollen Java Basics - Anfänger-Themen 11
J Textdatei filtern und bearbeiten Java Basics - Anfänger-Themen 1
C Textdatei oder doch eine Datenban Java Basics - Anfänger-Themen 15
J Input/Output Tilemap effizient speichern als Textdatei Java Basics - Anfänger-Themen 7
J Input/Output Zeile in Textdatei ändern Java Basics - Anfänger-Themen 14
M Textdatei(en) in .jar schreiben Java Basics - Anfänger-Themen 5
K Textdatei auslesen Java Basics - Anfänger-Themen 10
H Input/Output Inhalt einer GUI in Textdatei speichern Java Basics - Anfänger-Themen 1
K Erste Schritte Textdatei -> Array Java Basics - Anfänger-Themen 1
F Textdatei einlesen in ArryList (Objekte abspeichern?) Java Basics - Anfänger-Themen 4
F Problem mit Tabulatoren bei Zeilen zählen einer Textdatei Java Basics - Anfänger-Themen 17
G Erste Schritte Textdatei einlesen und in Array speichern Java Basics - Anfänger-Themen 5
F Textdatei einlesen und Zeilen zählen Java Basics - Anfänger-Themen 10
L Namen aus Textdatei auslesen Java Basics - Anfänger-Themen 1
E Textdatei kopieren funktioniert nicht Java Basics - Anfänger-Themen 12
M Zweidimensionales Array aus Textdatei gewinnen Java Basics - Anfänger-Themen 6
C Aus einer Textdatei Zahlen lesen mit Leerzeichen Java Basics - Anfänger-Themen 11
S Methoden Textdatei auslesen Java Basics - Anfänger-Themen 11
G Textdatei auf Dubletten prüfen Java Basics - Anfänger-Themen 8
T Textdatei Zeile löschen? Java Basics - Anfänger-Themen 4
T Textdatei beschreiben/bearbeiten Java Basics - Anfänger-Themen 4
S Textdatei einlesen und JFrame füllen Java Basics - Anfänger-Themen 14
C auslesen bestimmter werte einer textdatei und anschl. hineinschreiben in eine neue txt-datei. Java Basics - Anfänger-Themen 2
S Textdatei lesen, Methode gibt nur die letzte Zeile aus. Warum? Java Basics - Anfänger-Themen 5
C Einlesen in Array von Textdatei sehr langsam Java Basics - Anfänger-Themen 7
R Werte in eine Textdatei schreiben Java Basics - Anfänger-Themen 20
J Neue Zeile an bestimmter Stelle in Textdatei einfügen Java Basics - Anfänger-Themen 2
D Textdatei in geschachtelte Array speichern Java Basics - Anfänger-Themen 17
T Scanner für große Textdatei Java Basics - Anfänger-Themen 11
A Unterschied Textdatei und Quelltextdatei Java Basics - Anfänger-Themen 5
P Input/Output Textdatei einlesen - 1. Zeichen fehlt Java Basics - Anfänger-Themen 7
J Input/Output Textdatei in einer JAR lesen Java Basics - Anfänger-Themen 3
T Erste Schritte einzelne Wörter aus textdatei lesen... Java Basics - Anfänger-Themen 4
S Textdatei im Internet lesen und editieren Java Basics - Anfänger-Themen 2
J Textdatei einlesen und ausgeben - NullPointerException Java Basics - Anfänger-Themen 5
M Input/Output Objekte in einer Textdatei ablegen (Highscore) Java Basics - Anfänger-Themen 9
P CSV Daten in Textdatei Speichern Java Basics - Anfänger-Themen 3
K Input/Output Eingelesenedaten von Scanner als Textdatei ausgeben? Java Basics - Anfänger-Themen 2
N Input/Output Konsolenausgabe in Textdatei speichern/umleiten Java Basics - Anfänger-Themen 7
V Auf Textdatei in jar zugreifen Java Basics - Anfänger-Themen 3
A Textdatei einlesen - erstes Zeichen falsch Java Basics - Anfänger-Themen 20
S Methoden Textdatei Teil String auslesen Java Basics - Anfänger-Themen 3
H Zeile aus Textdatei lesen und in Textfield schreiben Java Basics - Anfänger-Themen 4
J durch drücken eines buttons text in einer textdatei speichern Java Basics - Anfänger-Themen 2
W letzte Zeile aus wachsender Textdatei auslesen Java Basics - Anfänger-Themen 5
algebraiker Textdatei-Import Java Basics - Anfänger-Themen 8
M Datum aus einer Textdatei holen Java Basics - Anfänger-Themen 9
C Spalte einer Textdatei einlesen Java Basics - Anfänger-Themen 10
Fab1 Input/Output Textdatei auslesen Java Basics - Anfänger-Themen 4
O grosse Textdatei performant als string speichern Java Basics - Anfänger-Themen 8
P Mit offset aus Textdatei auslesen Java Basics - Anfänger-Themen 3
C Textdatei einlesen Java Basics - Anfänger-Themen 8
V Falsches Auslesen von Textdatei Java Basics - Anfänger-Themen 3
T Input/Output 20Mb Textdatei zeilenweise auslesen Java Basics - Anfänger-Themen 10
N Textdatei lesen mit Umlauten Java Basics - Anfänger-Themen 16
N In Textdatei speichern und auslesen Java Basics - Anfänger-Themen 18
M Textdatei einlesen Java Basics - Anfänger-Themen 3
M Liste in Textdatei schreiben Java Basics - Anfänger-Themen 7
B Input/Output Textdatei einlesen Windows / Linux Java Basics - Anfänger-Themen 2
F Textdatei einlesen Java Basics - Anfänger-Themen 7
C Textdatei einlesen -> Probleme Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben