Input/Output .txt-Datei einlesen, aufteilen und seperat abspeichern

N

nezgar

Gast
Guten Abend,

long time reader, first time poster...

Bei einem kleinen Projekt bin ich auch nach ausführlicher Recherce an meine Grenzen gestoßen. Ich mag an dieser Stelle kurz beschreiben, was ich vorhabe und wo die Probleme sind. Anschließend gibts meinen bisherigen Quellcode...

Ich möchte eine .txt-Datei einlesen und die einzelnen Zeilen in Vectoren speichern. Anschließend soll eine Schleife die Strings nach einem bestimmten Wort durchsuchen. Alles, was zwischen dem Anfang und dem gesuchten Wort liegt, soll dann in eine eigene .txt-Datei gespeichert werden. Das sähe in etwa so aus:

Schlüsselwort1
blah1
blah2
blah3
Schlüsselwort2
blah4
blah5
blah6
Schlüsselwort3
...

So soll also Schlüsselwort1, blah1, blah2 und blah3 in eine txt-datei "1.txt" gespeichert werden. Die Schleife läuft dann weiter und speichert alles bis zum Schlüsselwort 3 in "2.txt" und so weiter.

Bisher sieht meine Main-Methode in etwa so aus:

Java:
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;


public class Main {

    public void writeToFile(String filename) {
        
        BufferedWriter bufferedWriter = null;
        
        try {
 
            bufferedWriter = new BufferedWriter(new FileWriter(filename));
            
 
            bufferedWriter.write("Writing line one to file");
            bufferedWriter.newLine();
            bufferedWriter.write("Writing line two to file");
            
        } catch (FileNotFoundException ex) {
            ex.printStackTrace();
        } catch (IOException ex) {
            ex.printStackTrace();
        } finally {

            try {
                if (bufferedWriter != null) {
                    bufferedWriter.flush();
                    bufferedWriter.close();
                }
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
    }
    

    public static void main(String[] args) {
        new Main().writeToFile("myFile.txt");
    }
}

Meine zweite Klasse zum Importieren sieht derzeit so aus:

Java:
public void lesen(String name) throws Exception {
		int zaehler = 0;
		int z = 0;
		String line2, line;
		
		try {
			file = new File(name);
			BufferedReader in = new BufferedReader(new FileReader(file));
			

			if (!file.exists()){
				throw new ExsistException("Die angegebene Datei exsistiert nicht");
			}
				
			if (!file.isFile()){
				throw new IsFileException("Der angegebene Pfad ist keine Datei");
			}
				
			if(!file.canRead()) {
				throw new ReadException("Die angegebene Datei kann nicht gelesen werden");
			}
			while ((line = in.readLine()) != null)
			{
				z++;
			}
			
			BufferedReader in2 = new BufferedReader( new FileReader(file));
			feld = new String[z];
			
			while ((line2 = in2.readLine()) != null) {
				feld[zaehler] = line2;
				zaehler++;
			}
					
		
			in2.close();
			in.close();
			
		} 
}

Da ich leider ein Neuling auf diesem Gebiet bin, hört hier (und eigentlich schon zwei Quellcodes weiter oben) mein Wissen auf. Trotzdem muss ich das leider irgendwie hinbekommen, weswegen ich mich nach tagelangen "Ich-versuch-das-mal-eben-selber-so-hinzuwurschteln"-Versuchen schließlich durchgerungen habe, hier um Hilfe zu bitten.

Könnte mir jemand sagen, wie man das Programm weiterschreiben, bzw. weiter aufbauen könnte?

In der Hoffnung, dass sich ein gute Seele meines Problemes anzunehmen vermag, verbleibe ich mit freundlichen Grüßen,
nezgar
 
N

nezgar

Gast
Vielen Dank erst einmal für die schnelle Rückmeldung.
Ich hab mit natürlich regionMatches mal angeschaut. Soweit ich das verstanden habe, wird da ein String durchsucht, bis er die gleiche Zeichenkette erneut gefunden wird und liefert dann true als Ergebnis.
Nur für mich als Neuling erschließt sich noch nicht ganz, wie das dann als Schleife aussehen würde. Ich will ja nicht nur die Zeichenketten vergleichen, sondern auch alles dazwischen kopieren und schließlich in eine Datei abspeichern.

Ich hätte jetzt gedacht, dass man eine while(!true)-Schleife benutzt... Würde das so funktionieren?
 

c_sidi90

Top Contributor
Wenn du in einer Textdatei mehrere Spalten durchsuchen möchtest, eignet sich wie gesagt die Methode regionMatches gut, dieser Methode musst du dann natürlich den String übergeben der dein Suchwort beinhaltet.

Da du den Rest der Zeile auch abspeichern willst, nehm ich mal an die Zeichenketten sind doch reguläre Ausdrücke getrennt wie z.B. im CSV Format durch ";". Dafür kannst du dann split() verwenden. Du musst vorher ein Array von Typ String deklarieren zB.

Java:
FileReader fileReader = new FileReader("pfadzurDatei.txt");
BufferedReader reader = new BufferedReader(fileReader);

String datenArray[] = null;
String zeile; //Diese Variable speichert dann die Ausgabe des BufferedReaders
String suchWort; ="" // die Zeichenkette die du suchen willst


Die schleidfe könnte dann in etwa so aussehen

Java:
while((zeile=reader.readLine())!=null){
		
				if(zeile.regionMatches(0,suchWort,0,suchWort.length())){
					System.out.println("Übereinstimmung gefunden");
					datensatz = zeile.split(";");
			
					for(int i=0; i<datensatz.length;i++){
						System.out.println(datensatz[i]);
					}
				}
				
				else{
					//Was auch immer du dann aufrufen möchtest;
				}
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
sserio Txt Datei einlesen Java Basics - Anfänger-Themen 9
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
J Csv-Datei einlesen Java Basics - Anfänger-Themen 52
L Konstruktor für eine Map-Datei/Map-Datei einlesen Java Basics - Anfänger-Themen 5
O zufälliges Wort aus einer Datei einlesen Java Basics - Anfänger-Themen 32
E Input/Output Datei anhand von Dateinamen einlesen Java Basics - Anfänger-Themen 5
C Datei über relative Pfade einlesen Java Basics - Anfänger-Themen 6
P Datei einlesen und zurückgeben Java Basics - Anfänger-Themen 5
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
B HTML Datei einlesen und HTML Code in String wandeln Java Basics - Anfänger-Themen 19
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
P Text Datei einlesen und übertragen Java Basics - Anfänger-Themen 15
E Einteilung der Räume mit einlesen einer .txt datei Java Basics - Anfänger-Themen 16
J Einlesen von Datei funktioniert nicht Java Basics - Anfänger-Themen 8
M Datei einlesen mit Scanner funktioniert nicht (FileNotFoundException) Java Basics - Anfänger-Themen 6
L Input/Output XML Datei einlesen (JAXB?) Java Basics - Anfänger-Themen 10
F Zahlen aus Datei einlesen und in Array speichern Java Basics - Anfänger-Themen 2
I Datei einlesen Java Basics - Anfänger-Themen 11
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
C Erste Schritte Regex - Datei einlesen und splitten Java Basics - Anfänger-Themen 4
K Datei aus unbekannten Speicherorten einlesen Java Basics - Anfänger-Themen 1
T Datei in Array einlesen "null" Java Basics - Anfänger-Themen 8
U Daten aus Datei einlesen Java Basics - Anfänger-Themen 4
N Datei Zeilenweise einlesen, Ausgabe mehrere Arrays Java Basics - Anfänger-Themen 7
E Erste Schritte txt.Datei mit BufferedReader einlesen und in 2D-Array abspeichern Java Basics - Anfänger-Themen 15
M Methoden Datei einlesen und als return übergeben. Java Basics - Anfänger-Themen 8
P CSV Datei einlesen und damit ein Datenmodell befüllen Java Basics - Anfänger-Themen 2
N Datei einlesen und grafisch anzeigen Java Basics - Anfänger-Themen 31
P csv Datei einlesen und ausgeben Java Basics - Anfänger-Themen 5
J Text Datei einlesen Java Basics - Anfänger-Themen 6
N gerichteter Graph aus einer Datei einlesen Java Basics - Anfänger-Themen 21
E Datei einlesen und bestimmte Wörter ausgeben Java Basics - Anfänger-Themen 2
Z Erste Schritte Versuche ein Labyrinth in einem Terminal zu erstellen, aber kann die properties Datei nicht einlesen Java Basics - Anfänger-Themen 3
J Encoding Problem beim Einlesen einer txt Datei mit Umlauten Java Basics - Anfänger-Themen 3
V Excel Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 4
stylegangsta Input/Output Hat eclipse eine Macke oder mein Code Array Datei einlesen Java Basics - Anfänger-Themen 5
N Mehrdimensionales float Array aus .txt-Datei einlesen? Java Basics - Anfänger-Themen 17
C Datei mit Daten einlesen und höchsten wert der zweiten Spalte ermitteln Java Basics - Anfänger-Themen 1
J CSV Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 10
I BufferedReader Text-Datei einlesen??? Java Basics - Anfänger-Themen 1
S Datei einlesen - Dateipfad unter Linux anpassen Java Basics - Anfänger-Themen 12
A Datei in Array einlesen Java Basics - Anfänger-Themen 6
S Daten aus anderen Dateien in neue Datei einlesen Java Basics - Anfänger-Themen 3
Ananaskirsche Input/Output Bestimmte Zeile aus Datei einlesen Java Basics - Anfänger-Themen 4
J .txt Datei "einlesen "und in String speichern ergibt immer NULL Java Basics - Anfänger-Themen 17
M CSV-File aus datei system einlesen Java Basics - Anfänger-Themen 3
B Datei in Java einlesen Java Basics - Anfänger-Themen 13
S Datei einlesen und ausgeben Java Basics - Anfänger-Themen 8
S Input/Output einlesen aus einer evtl. leeren Datei Java Basics - Anfänger-Themen 5
J Input/Output Datei - Zeilenumbruch einlesen Java Basics - Anfänger-Themen 10
H config Datei erstellen + einlesen Java Basics - Anfänger-Themen 15
F Datei einlesen ( Bytes ) Java Basics - Anfänger-Themen 12
T Klassen CSV datei einlesen und parsen Java Basics - Anfänger-Themen 4
U Datei einlesen Java Basics - Anfänger-Themen 9
S ANSI-Datei einlesen UND UTF-8-Datei schreiben Java Basics - Anfänger-Themen 3
M Datei einlesen mit generics? Java Basics - Anfänger-Themen 9
I Datei einlesen, Inhalt in MAP ablegen Java Basics - Anfänger-Themen 10
A Erste Schritte Datei einlesen und Buchstaben zählen Java Basics - Anfänger-Themen 13
D txt-Datei zeilenweise als String einlesen Java Basics - Anfänger-Themen 2
E JPane txt datei einlesen Java Basics - Anfänger-Themen 5
D RegExp .txt-Datei einlesen Java Basics - Anfänger-Themen 6
M Datei Einlesen Fortan-Style? Java Basics - Anfänger-Themen 3
A Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 5
S Datei einlesen Java Basics - Anfänger-Themen 21
D Datei einlesen Fehler Java Basics - Anfänger-Themen 17
A Beim txt Datei einlesen kommen zusätzliche Lehrzeichen dazu. Java Basics - Anfänger-Themen 5
H eine Datei schnellstmöglich einlesen Java Basics - Anfänger-Themen 12
0 Log4J Probleme beim einlesen der Log datei Java Basics - Anfänger-Themen 2
E Input/Output Linux datei in Windows zeilenweise einlesen Java Basics - Anfänger-Themen 4
S XML Datei einlesen und Elemente ausgeben Java Basics - Anfänger-Themen 4
L Problem beim Einlesen einer Datei in einen String Java Basics - Anfänger-Themen 12
S Datenströne - Text in eine Datei einlesen, umwandeln und in eine neue Datei schreiben Java Basics - Anfänger-Themen 6
E externe .txt Datei mit Scanner einlesen Java Basics - Anfänger-Themen 7
L Datei einlesen Java Basics - Anfänger-Themen 12
L Input/Output Datei in Java einlesen Java Basics - Anfänger-Themen 9
J Datei einlesen Java Basics - Anfänger-Themen 10
I .csv-Datei einlesen klappt aber kann nicht in String geschrieben werden!?!?! Java Basics - Anfänger-Themen 11
S Datei einlesen und Ergebnis wieder in Datei schreiben Java Basics - Anfänger-Themen 5
J Datei einlesen teile aus lines ändern und wieder rausschreiben. Java Basics - Anfänger-Themen 4
B Wertetabelle mit versch. Formaten aus txt-Datei einlesen Java Basics - Anfänger-Themen 2
H 200000 Zeilen aus Datei einlesen Java Basics - Anfänger-Themen 13
D CSV Datei einlesen und verarbeiten Java Basics - Anfänger-Themen 23
J byteweise Einlesen einer Datei "Von.. bis.." Java Basics - Anfänger-Themen 3
J Einlesen/Speichern von Strings aus einer Datei Java Basics - Anfänger-Themen 15
Z CSV-Datei einlesen mit dem JFileChooser !!! Java Basics - Anfänger-Themen 5
H Einlesen einer CSV-Datei Java Basics - Anfänger-Themen 2
X einlesen aus Datei, Fehler Java Basics - Anfänger-Themen 9
S Einlesen einer Datei? Java Basics - Anfänger-Themen 9
L Datei einlesen und neu geändert ausgeben Java Basics - Anfänger-Themen 8
B Formel aus Datei einlesen und benutzen Java Basics - Anfänger-Themen 3
C Datei einlesen Java Basics - Anfänger-Themen 19
H Datei einlesen in einer MVC Anwendung Java Basics - Anfänger-Themen 3
M OutOfMemoryError beim Datei einlesen Java Basics - Anfänger-Themen 17

Ähnliche Java Themen

Neue Themen


Oben