Textdateien splitten, neu schreiben

Bluedaishi

Bekanntes Mitglied
Guten Abend
ich habe folgendes Problem , ich habe eine Text datei unterschiedlicher grösse
sie enthält "Einsprung marken" die sich immer wieder holen sobald ein text abschnitt zuende und wieder
anfängt.
ich möchte diese an den einsprung marken splitten und den Text dazwischen in eine neue datei schreiben
wieviel abschnitte enthalten sind ist unbekannt es 6 oder 1 oder 100 sein usw.

ich hoffe ihr könnt mir irgendwie weiter helfen

vielen dank
 
Zuletzt bearbeitet von einem Moderator:
M

Marcinek

Gast
Datei zeilenweise lesen und schreiben.

Beim Marker: Alten Stream schließen, neuen Stream öffnen und weiter gehts.
 

Bluedaishi

Bekanntes Mitglied
Java:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Splitter {

	/**
	 * @param args
	 * @throws IOException 
	 */
	
	
	public static void main(String[] args) throws IOException {
		
		String line = null;
		int dateiLaenge = getZeilenAnzahl();
		int count = 0;
		int anzahl = 0;
		int anfang = 0;
		int anfang1 = 0;
		int ende = 0;
		
		try {
			BufferedReader br = new BufferedReader(new FileReader("E:\\daten.txt"));
		
			while ( br.readLine() != null){
				
				count++;
				line = br.readLine();
				
				if(line.contains("Sp")){
					anfang = count;
				}
				
				if(line.contains("S7p")){
					anfang1 = count;
				}
				
				
				if(line.contains("")){
					ende = count;
				}
				
				anzahl = ende - anfang ;
				System.out.println(anzahl);
				for(int i = 0; i < anzahl ; i++ ){
					line = br.readLine();
					//System.out.println(line);
				}
				
				
			}
			
		}catch (Exception ex) {
		      ex.printStackTrace();
		    }	
		

		}
					

	

	
	private static int getZeilenAnzahl() {
		
		int count = 0;
		try {
		      BufferedReader br = new BufferedReader(new FileReader("E:\\daten.txt"));
		      while ( br.readLine() != null ) {
		        count++;
		      } 
		      br.close();
		    }
		    catch (Exception ex) {
		      ex.printStackTrace();
		    }
		return count;
	}

}


das ist das was ich bis jetzt habe :-(
 
M

Marcinek

Gast
Also die Zeilenanzahl ist ja schon mal unerheblich oder?

Wie sehen die marker aus?

beachte, dass jeder aufruf von readLine() eine Zeile weiter liest.

Du überliest also jede zweite Zeile.

---
Hinweis auf den Edit Button.
 

Bluedaishi

Bekanntes Mitglied
ja das ist richtig ich will die einsprung marke nicht mit in die neue datei schreiben
die einsprung marken sind sind line.contains("....") zusehen :)
 
M

Marcinek

Gast
Ja aber durch das while(readLine() != null) und dann nochmal line = br.readLine(); liest du jede zweite Zeile.

---

Ansonsten sieht der Anfang doch gut aus. Aber bei den markern musst du jedesmal den Outputstream schließen und einen neuen erstellen. und nicht irgentwas mit anfang - ende...
 

Bluedaishi

Bekanntes Mitglied
Die Zeilen anzahl zwischen den Markern kann unterschiedlicher länge sein , die gesamt länge wollte ich für eine for schleife behalten :)
 

Bluedaishi

Bekanntes Mitglied
mit dem line = br.readLine(); wollte ich die zeile in die neue datei schreiben lassen, und anfang und ende für die berechnung der zeilen anzahl zwischen den markern :) und den output stream muss ich bei dem end marker schliessen den der ist am text ende immer der selbe :) ausserdem ist mir noch nicht ganz klar wie ich die neuen text dateien neu wegschreiben lasse ohne das sie wieder überschreiben werden ich müsste eine zahl mit anhängen zb. text1.txt usw
 
Zuletzt bearbeitet:
M

Marcinek

Gast
Nochmal der Hinweis auf den EDIT Button des Forums.

--

Das ist mir schon klar!

Das vorgehen sollte sein:

OutputStream definieren.
InputStram definieren.
String Zeile definieren.

solange die nächste Zeile != null ist:
Prüfe, ob Zeile einen marker enthält:
wenn ja, dann schließe Outputstream;
öffne Neuen InputStram;
wenn nein, dann schreibe aktuelle Zeile in OutputStream.
ende.
 

Bluedaishi

Bekanntes Mitglied
Java:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

public class Splitter {

	/**
	 * @param args
	 * @throws IOException 
	 */
	
	
	public static void main(String[] args) throws IOException {
		
		String line = null;
		
		
		try {
			BufferedReader br = new BufferedReader(new FileReader("E:\\text.txt"));
			BufferedWriter bw = new BufferedWriter(new FileWriter("C:\\Temp\\text.txt"));
			
			while ( br.readLine() != null){
					
				if(line.contains("Sp")){
					while ((line = br.readLine()) != null){
					line = br.readLine();
					bw.write(line);
					}
				}else if(line.contains("")){
					
					bw.flush();
				
				}
				
			
				
				
			
				
				
			}
			
		}catch (Exception ex) {
		      ex.printStackTrace();
		    }	
		

		}
					
}

die neue text datei ist leer und ich bekomme ein null.pointer Exception
 
M

Marcinek

Gast
Im Stacktrace stehen alle Informationen dazu.

Eventuell mal danach googeln.

Ebenfalls mal in die Hilfe des Forums mal schauen, wie man Beiträge nachträglich ändern kann.

Ich würde auch nochmal genau durchlesen, was ich geschrieben habe. Zum einen fällt auf, dass ich nur eine While schleife habe. (while bedeuet hier "solange")
 

Dust80

Mitglied
Java:
 String line = null;
.
.
.
while ( br.readLine() != null){
                    
                if(line.contains("Sp")){
.
.
.

Bei
Java:
if(line.contains("Sp")
ist line = null, da es nirgendwo gesetzt wird.

ändere das innere der while Schleife mal in
Java:
while ( (line = br.readLine()) != null )
dann wird jede Zeile in der variablen line zwischengespeichert udn du kannst da auch was mit anfangen
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
F Input/Output 2 Textdateien mit einander vergleichen Java Basics - Anfänger-Themen 11
_0815_ Problem mit dem Automatischen eintragen in Textdateien Java Basics - Anfänger-Themen 1
S 4 große Textdateien zu einer Mergen Java Basics - Anfänger-Themen 5
K Textdateien vergleichen optimieren Java Basics - Anfänger-Themen 9
Z Textdateien einlesen und verarbeiten Java Basics - Anfänger-Themen 3
H Textdateien in Ordner einlesen - unendlich ? Java Basics - Anfänger-Themen 8
T mehrere Benutzer greifen auf Textdateien zu Java Basics - Anfänger-Themen 3
H Vergleichen mit mehreren Textdateien Java Basics - Anfänger-Themen 2
MilchToast Teilstrings aus unbekannt großen Textdateien extrahieren. Java Basics - Anfänger-Themen 5
B Textdateien erweitern Java Basics - Anfänger-Themen 7
A Zugriff auf Textdateien und Datenbanken Java Basics - Anfänger-Themen 3
D textdateien manipulieren, welche klasse? wie? Java Basics - Anfänger-Themen 8
T Textdateien mit Unicode-Zeichen kopieren Java Basics - Anfänger-Themen 2
F mehrer Textdateien Inhalte in eine TXT Datei Java Basics - Anfänger-Themen 16
H in Textdateien etwas schreiben bzw. speichern Java Basics - Anfänger-Themen 2
cowabunga1984 Auslesen von Informationen aus Textdateien Java Basics - Anfänger-Themen 2
J in Textdateien speichern - aus Textdateien auslesen Java Basics - Anfänger-Themen 5
G Textdateien bearbeiten Java Basics - Anfänger-Themen 22
G Bilder und Textdateien aus jar einbinden Java Basics - Anfänger-Themen 7
F Zugriff auf Textdateien über URL Java Basics - Anfänger-Themen 2
E Zwei Textdateien in eine kopieren Java Basics - Anfänger-Themen 5
F 2x 16bit Werte zu einem 32bit und dann splitten mit 0xb Java Basics - Anfänger-Themen 1
T String splitten Java Basics - Anfänger-Themen 3
S Nutzereingabe splitten und in string array wieder ausgeben. Java Basics - Anfänger-Themen 1
Henri Filename splitten Java Basics - Anfänger-Themen 8
S Nummer splitten Java Basics - Anfänger-Themen 2
CptK Datentypen String splitten, ä,ö,ü, etc ignorieren Java Basics - Anfänger-Themen 1
J String splitten Java Basics - Anfänger-Themen 3
A String mit mehreren Zeilen splitten Java Basics - Anfänger-Themen 4
C Erste Schritte Regex - Datei einlesen und splitten Java Basics - Anfänger-Themen 4
J String splitten und weiter einarbeiten in einer Methode? Java Basics - Anfänger-Themen 11
S Java Text splitten mit Tabs, Zeilen, Zeichen und Klammern. Java Basics - Anfänger-Themen 6
C Zeilen in Array einlesen und splitten? Java Basics - Anfänger-Themen 17
MiMa Splitten eines Strings Java Basics - Anfänger-Themen 5
DestinatioN Problem beim splitten eines Satzes in Wörter und die Wörter in Buchstaben Java Basics - Anfänger-Themen 2
S splitten von arrays Java Basics - Anfänger-Themen 6
S Zahl an bestimmter Stelle splitten Java Basics - Anfänger-Themen 6
S String splitten und berichtigen? Java Basics - Anfänger-Themen 16
Z String splitten Java Basics - Anfänger-Themen 2
S String ab dem Wechsel Buchstaben zu Zahlen splitten Java Basics - Anfänger-Themen 14
S String splitten und in ArrayList speichern Java Basics - Anfänger-Themen 4
A String Mehrfach Splitten Java Basics - Anfänger-Themen 1
A Binärstrom splitten und in ArrayList adden Java Basics - Anfänger-Themen 1
G Quellcode "splitten" Java Basics - Anfänger-Themen 6
X Regex splitten Java Basics - Anfänger-Themen 5
B Variablen Unbekante anzahl an Strings splitten und vergleichen Java Basics - Anfänger-Themen 31
B String in in bestimmten abschnitten splitten Java Basics - Anfänger-Themen 2
H String splitten Java Basics - Anfänger-Themen 6
S String Splitten Java Basics - Anfänger-Themen 2
P Erste Schritte Buffered Image splitten und darstellen Java Basics - Anfänger-Themen 2
I Rechenoperatoren mit Regex splitten Java Basics - Anfänger-Themen 12
T String splitten Java Basics - Anfänger-Themen 2
C Methoden String richtig splitten Java Basics - Anfänger-Themen 5
D splitten Java Basics - Anfänger-Themen 21
0 Strings nach TABULATOR splitten Java Basics - Anfänger-Themen 10
C Regex String splitten Java Basics - Anfänger-Themen 5
T String splitten beim wechsel vom buchstabe zu zahl! Java Basics - Anfänger-Themen 8
F Char Array splitten Java Basics - Anfänger-Themen 5
2 String splitten und nacheinander löschen Java Basics - Anfänger-Themen 11
J Datentypen String splitten ohne festen Ausdruck Java Basics - Anfänger-Themen 8
B Datei in mehrere Ordner splitten und wieder zusammenfuegen... Java Basics - Anfänger-Themen 3
T String in String Array splitten Java Basics - Anfänger-Themen 4
StrikeTom String mehrmals splitten Java Basics - Anfänger-Themen 11
X Splitten eines Strings Java Basics - Anfänger-Themen 3
A Problem beim Splitten eines Strings Java Basics - Anfänger-Themen 10
S String in Integer Array splitten Java Basics - Anfänger-Themen 2
O Werte eines arrays splitten Java Basics - Anfänger-Themen 4
A String nach bestimmten kriterien splitten Java Basics - Anfänger-Themen 13
X Webseite auslesen ohne Quellcode zu splitten Java Basics - Anfänger-Themen 3
S Double splitten Java Basics - Anfänger-Themen 4
M String splitten mit split() Java Basics - Anfänger-Themen 4
T String splitten Java Basics - Anfänger-Themen 2
K String splitten Java Basics - Anfänger-Themen 4
V Byte Arrays in Strings umwandeln und splitten Java Basics - Anfänger-Themen 2
S String splitten Java Basics - Anfänger-Themen 4
O String splitten Java Basics - Anfänger-Themen 9
N Textdatei einlesen, Filtern und Splitten Java Basics - Anfänger-Themen 4
A Datei einlesen und splitten nur zeilenweise Java Basics - Anfänger-Themen 7
M String splitten Java Basics - Anfänger-Themen 2
G String nach Pluszeichen splitten Java Basics - Anfänger-Themen 2
G long datum splitten in day etc Java Basics - Anfänger-Themen 23
G String splitten Java Basics - Anfänger-Themen 3
G Stringinhalt splitten und einzeln verwenden Java Basics - Anfänger-Themen 8
T String splitten und auf fehler abfragen Java Basics - Anfänger-Themen 3
H Problem beim Splitten eines Strings Java Basics - Anfänger-Themen 13
L Stringzeile aus Datei in 5 token splitten und 5D array laden Java Basics - Anfänger-Themen 3
U String splitten Java Basics - Anfänger-Themen 12
D txt nach Zeilen splitten. Java Basics - Anfänger-Themen 9
J Java Aufgabe -> String einlesen, splitten,Substring & Java Basics - Anfänger-Themen 3
loadbrain String splitten Java Basics - Anfänger-Themen 3
M Scanner soll nach einem Ausdruck splitten Java Basics - Anfänger-Themen 2
G eine Zeile in einer Textdatei splitten Java Basics - Anfänger-Themen 15
S txt-Datei nach Leerzeichen Splitten lassen! Java Basics - Anfänger-Themen 3
G Image 'splitten' Java Basics - Anfänger-Themen 2
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
M Test auf Exceptions schreiben Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben