Textdatei stückweise einlesen

Shorayne

Mitglied
Hallo,

ich bin grad echt am verzweifeln. Ich versuche aus einer Textdatei, welche folgenden Aufbau hat Werte auszulesen.

Beispielzeile in Anführungsstrichen:

"51100210 Holzfenster einfach 6*15 ST 0160 0800 150 Vereinigte Bauelementewerke Hennigsdorf 0495.80 0629.25 0499.80 5"

Davon hat die Datei 20 Zeilen. Die erste Zahl ist Artikelnummer, dann Artikelbeschreibung, Mengeneinheit und so weiter. Ziel ist es die Werte der Zeilen einzulesen und zu speichern. Was sehr Hilfreich ist, ist das die einzelnen Werte eine feste Länge in der Textdatei haben.

Artikelbeschreibung z.Bsp. ist immer 30 Zeichen und Artikelnummer ganz am Anfang immer 8.

Ich habe es jetzt schonmal hinbekommen die kompletten Zeilen einzulesen und ausgeben zu lassen.

Java:
package artikel_package;

import java.*;
import java.util.*;
import java.io.*;

public class Artikel_class {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

int p, m=0;
String [] zeile = new String [50];
int p1, p2;
double [] [] a = new double [50] [10];
int [] n = new int [50];
try { 
		 
 FileReader fr = new FileReader ("D://Programme/eclipse/Informatik/ARTIKEL.TXT");
 BufferedReader input = new BufferedReader(fr);
 zeile[m]=input.readLine();
 while  (zeile[m] !=null)
		  
 {   m=m+1; zeile[m]=input.readLine();   }
		 
 input.close();
		 

}

catch (IOException lesefehler) { 
System.out.println("LESEFEHLER"+lesefehler);
		 }

System.out.println(zeile[1]);

}}

Fragt bitte nicht was das da oben mit dem p1 und 2 etc. soll. Ich hab mir erstmaln paar Dinge aus meinen Unterlagen genommen und zusammengefriemelt. Er unterstreicht mir da auch einiges gelb.

Ich müsste halt wissen wie man nicht die ganze Zeile sondern die einzelnen Stücke ausliesst und meinetwegen in einer Matrix speichert. Also ich am Ende meinetwegen von Artikel 10 (steht in 10.Zeile) ich den Lagerbestand (ist der 4. Wert in der Zeile) einfach ausgeben kann. Als Matrix sollte das dann ja der gespeicherte Wert von [10][4] sein. So nach dem Prinzip etwa. Aber wie das gehen soll puhh ich weiss echt nicht weiter...

Falls wer seine Hilfe anbietet schonmal recht vielen Dank im vorraus
 

Java123???

Mitglied
Hallo,
Ich müsste halt wissen wie man nicht die ganze Zeile sondern die einzelnen Stücke ausliess

Am besten du liest die ganze Zeile aus und dann kannst du mit
Java:
String[] wert = zeile.split(" ");
die Werte einzeln abspeichern. Wenn du dann noch ein Wert in int haben möchtest kannst du z.B. mit
Java:
int zahl = Integer.valueOf(wert[0]);
einen Wert zu integer casten.

Mfg
 

fastjack

Top Contributor
So einfach ist das leider nicht. Die Artikelbezeichnung kann auch Leerzeichen haben "Holzfenster einfach" ;)
Du mußt jeden Wert ein wenig anders auslesen und umformen (nach int und co.) Außerdem mußt Du aufpassen, wenn jemand einen Wert "vergißt", oder der Wert einfach Leer ist (Leerer String und so). Besser ist es, wenn die Textdatei ein Trennzeichen hätte, oder ihr Euch auf so etwas einigen könntet. Wenn die Datei von externen Leuten kommt, stelle Dich auf Fehler ein. Z.B. ein Wert läßt sich nicht nach int parsen. Die ganze Datei deswegen zu verwerfen wäre wohl nicht gut, die Zeile dagegen schon, man könnte die Artikelnummer loggen.
 
G

Gast2

Gast
Einfach erst ganz einlesen und dann Zeile für Zeile parsen. Ich würde mir auch gleich eine passende Klasse Artikel schreiben...

Java:
			FileReader fr = new FileReader("D://Programme/eclipse/Informatik/ARTIKEL.TXT");
			BufferedReader input = new BufferedReader(fr);
			List<String> lines = new ArrayList<String>();
			String line = null;
			while ((line = input.readLine()) != null) {
				lines.add(line);
			}
			input.close();
			
			List<Artikel> allArtikels = new ArrayList<Artikel>();
			for(String rawArtikelData : lines){	
				Artikel artikel = processRawData(rawArtikelData);
				allArtikels.add(artikel);
			}

...
public Artikel processRawData(String rawArtikelData){
    // hier den String parsen, mit split oder Tokenizer
}

Da das ganze ja anscheinend eine Übung ist gehe ich mal davon aus das erstmal alle Zeilen vollständig sind und keine Fehler enthalten. Sonst halt noch ein Exceptionhandling in oder um das processRawData bauen.
 

Shorayne

Mitglied
Es soll eine Übung sein richtig, wobei Übung ja normalerweise nur für etwas gilt was man bereits gelernt hat. Es ist mehr ein schmeisen in kaltes Wasser.

Ich werd erstmal alle Tipps berücksichtigen und mich gegebenenfalls nochmal melden.

Vielen Dank erstmal soweit!
 
G

Gast2

Gast
Wenn du die genauen Längen der Tokens weißt kannst du recht einfach parsen:

Java:
public class Test {

	final static int LENGHT_ART_NR = 8;
	final static int LENGHT_ART_NAME = 30;
	final static int LENGTH_ART_ANZ = 3;

	public static void main(String[] args) {
	
		
		String rawArtikelData = "51100210 Holzfenster einfach 6*15 ST 0160 0800 150 Vereinigte Bauelementewerke Hennigsdorf 0495.80 0629.25 0499.80 5";
		Artikel artikel = processRawData(rawArtikelData);

	}

	public static Artikel processRawData(String s){
		Artikel artikel = new Artikel();
		int index = 0;
		artikel.setNummer(s.substring(index,LENGHT_ART_NR));
		System.out.println(artikel.getNummer());
		index = LENGHT_ART_NR+1; // +1 für den space
		
		artikel.setName(s.substring(index,LENGHT_ART_NAME));
		System.out.println(artikel.getName());
		index += LENGHT_ART_NAME;
		
		//... usw
		return artikel;
	}
}


class Artikel{
	
	String nummer;
	String name;
	int anzahl;
	public String getNummer() {
		return nummer;
	}
	public void setNummer(String nummer) {
		this.nummer = nummer;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAnzahl() {
		return anzahl;
	}
	public void setAnzahl(int anzahl) {
		this.anzahl = anzahl;
	}
}

Das geht aber nur wenn du wirklich feste Längen in dem Daten String hast.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
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
N Integers aus Textdatei auslesen und mehrere Arrays erstellen Java Basics - Anfänger-Themen 9
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
K Input/Output Textdatei scheibchenweise auslesen Java Basics - Anfänger-Themen 8
D 1 Wort aus TextDatei auslesen Java Basics - Anfänger-Themen 3
J Jede Zeile der Textdatei in ListUI eintragen Java Basics - Anfänger-Themen 2
N Textdatei wird beim Speichern nicht überschrieben, sondern ergänzt Java Basics - Anfänger-Themen 4
A Double Array in TextDatei schreiben Java Basics - Anfänger-Themen 9
K Richtige Pfadangabe einer Textdatei Java Basics - Anfänger-Themen 7
B OOP Aus Textdatei auslesen Java Basics - Anfänger-Themen 11
P Textdatei auf erste Zeichenkette Prüfen... Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben