Input & Output Frage

  • Themenstarter Themenstarter Crystal24
  • Beginndatum Beginndatum
C

Crystal24

Gast
Hallo Leute,

ich arbeite momentan an einer Anwendung, die mit Input & Output zu tun hat. Nun will ich, dass wenn ich etwas in der Konsole eingebe, es im Textfenster in meinem Verzeichnis (test.txt) übernommen wird. Weiß jemand, wie man das machen könnte?

Java:
package File;

import inout.Console;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class Versuch1
{

	public static void main(String[] args) throws IOException
	{
		String zeile = "";
		char weiter = 'N';
		String strFile = "c:/IO/test.txt";  // der Dateiname
		File j = new File(strFile.toString());
		if (j.exists())
		{
			try
			{
				BufferedReader b = new BufferedReader(new FileReader("c:/IO/test.txt"));
				System.out.println("In test.txt steht folgendes:");
				while ((zeile = b.readLine()) != null)
				{
					System.out.println(zeile);
				}
				b.close();
				System.out.println("");
				System.out.println("Möchten sie der Datei etwas hinzufügen?");
				System.out.println("Bestätigen Sie mit (J)a oder N(ein).");
				weiter = Console.readChar();
                                // 
				//Hier hatte ich vor mit einer while-Schleife das zu machen, doch wie wird
				//das dann in test.txt gespeichert?
				//------------------------------------------------------------------
				while (weiter == 'J' || weiter == 'j')
				{
					BufferedReader console = new BufferedReader(new InputStreamReader(System.in));
					System.out.print("Geben Sie etwas ein: ");
					String zeile2 = null;
					try
					{
						zeile2 = console.readLine();
					} catch (IOException e)
					{
						// Sollte eigentlich nie passieren
						e.printStackTrace();
					}
					System.out.println("Ihre Eingabe war: " + zeile2);
				}
                                  // -----------------------------------------------------------------
                                  //

			} catch (IOException e)
			{
				System.out.println("Fehler: " + e.toString());
			}




			// ----------------------------------------------------------------------

		} else
		{
			System.out.println("Es wurde keine Datei im Verzeichnis gefunden.");
			System.out.println("Möchten Sie die Datei (test.txt) erstellen? ");
			System.out.println("Bestätigen Sie mit J(a) oder N(ein)!");
		}
	}
}
 
Das Pendant zu den diversen Readers (mit denen man zeichenbasiert liest) sind -wenig überraschend- die Writer (mit denen man zeichenbasiert schreibt). Wenn Du in ein File schreiben willst, brauchst Du einen FileWriter. Erweiterte Funktionalität (z.B. println) bietet der PrintWriter, Pufferung der BufferedWriter.
 
Ehmm, okay^^
Ich bin ein Anfänger, also...
Wie sollte das als Beispiel bitte aussehen?
Das mit den Readern hast Du ja auch hingekriegt. Die Writer benutzt man genauso. Praktischerweise heißen die auch noch genauso wie die Reader. Schaue Dir also Deine Reader-Zeilen an, ersetze "Reader" durch "Writer" (also z.B. BufferedReader -> BufferedWriter) und ersetze alle read()-Methoden durch write-Methoden. Das tatsächlich so einfach. Wenn's nicht flutschen will, empfehle ich das hier: Character Streams (The Java™ Tutorials > Essential Classes > Basic I/O)
Da ist auf einer Seite alles erklärt, inklusive Beispiele. Auch der Rest dieser ganzen Serie von Tutorials ist wärmstens zu empfehlen.
 
Zuletzt bearbeitet von einem Moderator:

Neue Themen


Zurück
Oben