Input/Output Ein und Ausgabe von Texten

muckelbenny

Mitglied
Hallo Leute ich bräuchte mal eure Hilfe für ein Java Programm....:)
ich bin in der Programmierung mit Java noch ziemlich ungeübt ???:L

Also mein Problem ist:

Ich möchte eine Textdatei zeilenweise auslesen und dann in einer neuen Datei ausgeben.

Das zeilenweise einlesen bekomme ich hin aber die zeilenweise Ausgabe des eingelesenen kriege ich nicht gebacken....

wäre nett wenn mir jemand helfen könnte :D


So sieht mein Programm momentan aus:



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


public class bla 

{
 
    public static void main(String[] args) throws Exception 
    
    {
    	//Zeilenweise aus Textdatei lesen
    	
    	FileReader fr = new FileReader("zu lesender Text.txt");
        BufferedReader br = new BufferedReader(fr);

        String zeile = "";

        while( (zeile = br.readLine()) != null )
        {        	
        	System.out.println(zeile);	 
        }

        br.close();
    	
        
        //Zeilenweise in Textdatei schreiben
        
        FileWriter fw = new FileWriter("Ausgabe.txt");
        BufferedWriter bw = new BufferedWriter(fw);

        bw.write("test test test");
        bw.newLine();
        bw.write("bla bla bla");

        bw.close();
    	
    	
    }
}
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
so viel schon fertig, warum ist der Rest ein Problem?

du kannst offensichtlich die Schleife so in den Code setzen, dass der Writer schon initialisiert ist,
dann für jede eingelesene Zeile gleich das write() aufrufen

oder du kannst alle eingelesenen Zeilen merken, etwa in einer Liste, und später per Schleife durchgehen
 

muckelbenny

Mitglied
so viel schon fertig, warum ist der Rest ein Problem?

du kannst offensichtlich die Schleife so in den Code setzen, dass der Writer schon initialisiert ist,
dann für jede eingelesene Zeile gleich das write() aufrufen

oder du kannst alle eingelesenen Zeilen merken, etwa in einer Liste, und später per Schleife durchgehen



???:L wie gesagt ich bin blutiger Anfänger beim programmieren...

was meinst du genau mit die Schleife in den Code setzen?

Also ich kann aus der gewünschten Textdatei alles zeilenweise einlesen...aber die Ausgabe verstehe ich nicht...
 
S

SlaterB

Gast
du verstehst doch wie man eine Zeile "test test test" schreibt, sogar mit Zeilenumbruch,
was ist der Unterschied zum Schreiben der String-Variablen 'zeile' in der Schleife?
 
N

nillehammer

Gast
Du liest in einer Schleife eine Datei zeilenweise ein. Wo wäre jetzt der geeignete Punkt, um diese gerade eingelesene Zeile woanders hinzuschreiben? Genau! Auch in der Schleife! Das machst Du mit dem System.out.println sogar schon. Du "schreibst" die Zeile nämlich auf die Konsole. Statt des printlns mus da also der write-Aufruf hin.
 

muckelbenny

Mitglied
Du liest in einer Schleife eine Datei zeilenweise ein. Wo wäre jetzt der geeignete Punkt, um diese gerade eingelesene Zeile woanders hinzuschreiben? Genau! Auch in der Schleife! Das machst Du mit dem System.out.println sogar schon. Du "schreibst" die Zeile nämlich auf die Konsole. Statt des printlns mus da also der write-Aufruf hin.

Ja mit dem S.o.p(zeile) schreibe ich es auf die Konsole...das checke ich ja auch....aber wie muss der write-Aufruf dann aussehen?
 
S

SlaterB

Gast
nochmal: du weißt wie man einen String "test test test" in die Datei schreibt, aber nicht wie man eine String-Variable schreibt?
wo ist der Unterschied?
 

muckelbenny

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


public class bla 

{
 
    public static void main(String[] args) throws Exception 
    
    {
    	//Zeilenweise aus Textdatei lesen
    	
    	FileReader fr = new FileReader("zu lesender Text.txt");
        BufferedReader br = new BufferedReader(fr);

        String zeile = "";

        while(  (zeile = br.readLine()) != null )
        {        	
        	//Text auf Konsole anzeigen 
        	System.out.println(zeile);
        	
        	//Text zeilenweise ausgeben
            FileWriter fw = new FileWriter("Ausgabe.txt");
            BufferedWriter bw = new BufferedWriter(fw);

            bw.write(zeile);
            bw.newLine();
            
            bw.close();
        }

        
        br.close();
        
        
    	
    }
}

so weit bin ich jetzt aber der zeigt mir nur die letzte zeile vom eingelesenen text an....
oh man ich verzweifel bald :rtfm:
 
N

nillehammer

Gast
Du brauchst EINEN Reader für das lesen einer Datei und EINEN Writer für das Schreiben in eine Datei. Wie viele Writer erzeugst Du? Warum? Wo wäre es besser?
 
S

SlaterB

Gast
na das ist nun von etwas schwereren Kaliber, nicht ganz so für Ratestunde geeignet,

jede erstellte Datei überschreibt die vorherige,
also den BufferedWriter vor der Schleife deklarieren wie ja auch den Reader,
das close() hinter die Schleife, alles analog
 

muckelbenny

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



public class Zeichenkettenmainpulation

{
	
	
public static void main(String[] args) throws Exception 
    
    {
    	//Zeilenweise aus Textdatei lesen
    	
    	FileReader fr = new FileReader("zu lesender Text.txt");
        BufferedReader br = new BufferedReader(fr);

        String zeile = "";

        //Text zeilenweise ausgeben
        FileWriter fw = new FileWriter("Ausgabe.txt");
        BufferedWriter bw = new BufferedWriter(fw);
        
        
                      
        
        while(  (zeile = br.readLine()) != null )
        {        	
        	//Text auf Konsole anzeigen 
        	System.out.println(zeile);
                
        	
        	bw.write(zeile);
            bw.newLine();
        }

        br.close();
        bw.close();
        
      
        
    	
    }
}

so sieht mein programm bislang aus...
jetzt mein nächstet problem...wie bekomme ich den text rückwärts ausgegeben? also der text soll eingelesen werden dann normal ausgegeben werden (hab ich ja geschafft) und darunter dann rückwärts in der selben ausgabedatei ausgegeben werden. das einlesen und rückwärts ausgeben in der komandozeile habe ich so geschafft:

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


public class Test

{
 
    public static void main(String[] args) throws Exception 
    
    {
    	//Zeilenweise aus Textdatei lesen
    	
    	FileReader fr = new FileReader("zu lesender Text.txt");
        BufferedReader br = new BufferedReader(fr);

        String zeile = "";

        
        
        while(  (zeile = br.readLine()) != null )
        {  
        	
        	//Zeilenweise rückwärts ausgeben
        	String rueck = (zeile);
	    	String input = zeile; 
	    		String[] results = input.split(";"); 
	    		for (int i = 0; i < results.length; i++) 
	    		{      
	    		}

	    		for (int j = args.length-1; j >= 0; j--)
	    		System.out.println(args[j]);
	    		StringBuffer strBuf = new StringBuffer(rueck);

	    		System.out.println(strBuf.reverse());
        	
        
        }

        br.close();
       
        
      
        
    	
    }
}

aber wie bekomme ich das jetzt in die ausgabedatei?
 
S

SlaterB

Gast
args sind die Parameter, die man bei Programmstart übergeben kann,
was haben die hier in deinem Programm zu suchen, geht es nicht allein um die Daten, die in einer Datei stehen?

mit 'normal ausgegeben' bist du undeutlich, auf Konsole ausgeben oder in Datei schreiben?

mit 'rückwärts ausgeben' bist du undeutlich, die args-Schleife läßt auf umgekehrte Reihenfolge mehrerer Wörter/ Zeilen schließen,
mit strBuf.reverse() kann man jedes einzelne Zeichen umdrehen

was du an Eingabe, Verarbeitung, Ausgabe hast ist also reichlich unklar, wie immer würde ein konkretes Beispiel helfen,
'folgende Datei, folgende Ausgabe in Datei dazu erwünscht'


grundsätzlich hast du aber alle Möglichkeiten auch schon wieder mehr oder weniger erkannt,
füge Strings in Listen oder Arrays ein die du dann mit geschickter Schleife (absteigender Index) später andersrum durchlaufen kannst,
verwende StringBuffer zum zeichenweise Umdrehen, sogar split() hast du noch, wofür auch immer

was soll man mehr dazu sagen, du musst nur alles korrekt verwenden, was nicht zu beurteilen ist ohne klares Ziel
 

muckelbenny

Mitglied
mein Ziel: ich soll eine textdatei zeilenweise einlesen.

die ausgabe soll in eine datei erfolgen (wieder zeilenweise)

-jede zeile soll einmal unverändert in die ausgabedatei
-jede zeile soll einmal rückwärts in die ausgabedatei
-jede zeile soll einmal so in die ausgabedatei dass alle buchstaben und zeichen (außer leerzeichen) durch ein "z" bzw "Z" ersetzt werden (je nachdem ob groß oder kleinbuchstabe)
-jede zeile soll so in die ausgabedatei geschrieben werden die Wörter (der, die, das, ein, eine, einer, und, oder, ist, sind) entfernt werden egal ob groß oder klein geschrieben.
 
S

SlaterB

Gast
nicht alles auf einmal, und Beispiele hast du übrigens wieder vergessen, was soll
> -jede zeile soll einmal rückwärts in die ausgabedatei
konkret bedeuten?

ich vermute, du bist mit
> String[] results = input.split(";");
in diese Richtung gegangen, jetzt musst du dieses Array mit einer Schleife durchlaufen,
ein normaler Index wäre vorwärts, den anderen Index kennst du schon von der args-Schleife
oder ansonsten weiter drüber nachdenken, was ist ein Index, welche Startwerte und Veränderungen sind möglich, wie wird aufgehört usw.

jedes Teilwort dann schreiben, dazu ein Leerzeichen oder ein ";", was immer nötig ist,
konkrete Beispiele verweigerst du ja, aber kompletten Code will ich eigentlich eh nicht schreiben

man darf auch ausprobieren, einfach eine Schleife über irgendwas und write(...) ausführen oder erstmal auf die Konsole,
schauen was passiert, lernen, andere Varianten probieren

eine Zeile aus der Datei reicht vorerst, evtl. extra kurze Test-Datei, nicht gleich mehrere auf einmal und von vielen Ausgaben verwirren lassen
 

muckelbenny

Mitglied
also ich habe die textdatei in der steht:

Das Programm ist leicht oder ?


es soll nun das in der ausgabedatei stehen:

Das Programm ist leicht oder ? alles normal eingelesen und ausgeben

? redo thciel tsi mmargorP saD also einmal rückwärts geschrieben

Zzz Zzzzzzzz zzz zzzzzz zzzz z Kleinbuchstaben durch z ersetzt, Großbuchstaben durch Z

Programm leicht ? wörter (der, die, das, ein, eine, einer, und, oder, ist, sind)
fehlen
 
S

SlaterB

Gast
nun, dann will ich diesmal sagen, dass du mit Zeile 37 +39 eine Sache doch schon gut hast, oder?
statt Ausgabe auf Konsole dann in Datei, das dürfte nichts neues sein

für die anderen beiden erstelle dir günstigerweise eigene Methoden, die du vergleichbar aufrufen kannst,
dann müssen die Methoden freilich implementiert werden

ich will wirklich nicht alles komplett erklären, aber führt wohl kaum ein Weg dran vorbei,
zumindest an noch mehr meiner losen Stichpunkte..

split() nach Semikolon ist anscheinend bedeutungslos, nach Leerzeichen schon eher,
das String[] result dann durchlaufen, und manche Wörter eben auslassen

im anderen Fall toCharArray() verwenden, wieder Schleife, jeden char anschauen und ersetzen
usw., alles simple Punkte, woran konkret scheiterst du?
formuliere deine Probleme, etwa 'ich kann nicht auf einzelne Zeichen der Zeile zugreifen'

wenn du nicht selber vorher nachdenken willst, nicht dein Scheitern exakt beschreiben kannst,
sondern prophylaktisch soviel fertiges wie möglich von anderen einsammelst,
dann fällt mir das langsam unangenehm auf und ich mache nicht mehr mit?
 

muckelbenny

Mitglied
ja ich kenne mich in der java programmierung halt wirklich nicht gut aus...du sagst immer irgendwelche begriffe mit denen ich nicht wirklich was anfangen kann...das liegt daran das ich leider sehr lange krank geschrieben war und somit nicht am unterricht teilnehmen konnte und jetzt so eine blöde aufgabe vom lehrer gestellt bekommen habe... hast ja sicher schon gemerkt das das einlesen und ausgeben der textdatei gestern schon nicht so einfach für mich war...aber ich will mich auch nicht beschweren sondern hoffe das ihr mich unterstützt:oops:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
M Methode zielnah zeigt das gewünschte Ausgabe nicht an Java Basics - Anfänger-Themen 3
M Ausgabe beim Overloading Java Basics - Anfänger-Themen 3
H Frage zur Ausgabe Java Basics - Anfänger-Themen 4
H Java-Programm zur Ausgabe von Zuständen Java Basics - Anfänger-Themen 80
S Einfach-Verkettete-Listen Ausgabe zeigt nur 1. und letzte instanz Java Basics - Anfänger-Themen 2
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
B Binärzahlen auflisten, falsche Ausgabe? Java Basics - Anfänger-Themen 1
M Java Ausgabe der höchsten Zahl Java Basics - Anfänger-Themen 14
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
W Streams in Java und was bedeutet meine Konsolen-Ausgabe? Java Basics - Anfänger-Themen 4
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
B Deadlock verstehen der Ausgabe! Java Basics - Anfänger-Themen 12
Lion.King Ausgabe mit Eigenschaften Java Basics - Anfänger-Themen 4
D Java Pattern mit X Ausgabe Stern Java Basics - Anfänger-Themen 4
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 0
J In der Ausgabe wird ohne Eingabe in den else Block gesprungen. Java Basics - Anfänger-Themen 5
Xaver code Tastatur ausgabe Java Basics - Anfänger-Themen 4
R Anfänger: Ausgabe kommt minus raus? Java Basics - Anfänger-Themen 6
K Leerzeile in Konsolen-Ausgabe Java Basics - Anfänger-Themen 4
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
Q return Ausgabe Java Basics - Anfänger-Themen 4
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
D Best Practice Ausgabe über direkte Ausgabe oder try-catch? Java Basics - Anfänger-Themen 13
S Ausgabe des Variablenwerts Java Basics - Anfänger-Themen 10
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
C Ausgabe boolean return ((n==9)||(n==0)); Java Basics - Anfänger-Themen 13
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
J String Ausgabe Java Basics - Anfänger-Themen 2
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
E Ausgabe überschreiben Java Basics - Anfänger-Themen 15
D Ausgabe von Array Java Basics - Anfänger-Themen 2
U Ausgabe Java Basics - Anfänger-Themen 4
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
V Multiplikationstafel - Ausgabe Java Basics - Anfänger-Themen 4
L Warum ist die Ausgabe anders als das was im Bezeichner steht? Java Basics - Anfänger-Themen 4
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
R Call-by-Value, Call-by-Reference, Call-by-Name Ausgabe Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
D Warum erfolgt folgende Ausgabe und warum? Java Basics - Anfänger-Themen 4
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
Y Methode + Parameters + Ein und Ausgabe Java Basics - Anfänger-Themen 1
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
A Wiederholte Ausgabe vermeiden Java Basics - Anfänger-Themen 16
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
K Rechtsbündige Ausgabe von Zahlen Java Basics - Anfänger-Themen 6
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
J Ausgabe Gesamtpreis Java Basics - Anfänger-Themen 39
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
B HQL / Hibernate, GroupBy und Ausgabe als Double Java Basics - Anfänger-Themen 1
J StrinBuffer in der Ausgabe Java Basics - Anfänger-Themen 4
H ausgabe? Java Basics - Anfänger-Themen 32
B Ausgabe Zahlenreihe Horizontal Java Basics - Anfänger-Themen 3
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
K Array Ausgabe Java Basics - Anfänger-Themen 2
L Datentypen Ausgabe von eigenem Datentypen Java Basics - Anfänger-Themen 2
C 1x1 Ausgabe auf dem Bildschirm Java Basics - Anfänger-Themen 3
L Fehler im Programm bei Ausgabe Java Basics - Anfänger-Themen 21
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
F Warum ist die Ausgabe hier 1? Java Basics - Anfänger-Themen 4
Bun17 Keine Ausgabe in der Konsole Java Basics - Anfänger-Themen 2
H Ausgabe Java Basics - Anfänger-Themen 6
U Ausgabe von Dateiinhalt während Programmnutzung fehlerhaft Java Basics - Anfänger-Themen 3
Jackii ArrayList ausgabe ohne Dopplung Java Basics - Anfänger-Themen 11
F Erste Schritte Subnet Calculator - Ausgabe der NetID und der Broadcast Java Basics - Anfänger-Themen 4
D Wiederholende Ausgabe Java Basics - Anfänger-Themen 3
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
A Datei Ein und Ausgabe FileWriter und printWriter Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben