Zum Inhalt springen

mit java in eine txt datei schreiben


paulchen1111

Empfohlene Beiträge

Hi ho!

Ich hab da ein problem. ich hab 2 javaprogramme, eines benutz ein cmd fenster zum einlesen und speichern der daten =>


import java.io.*;


public class schreiben_schueler


{

	public static void main (String args[])

		{

		  try


			{

				BufferedReader in=

					new BufferedReader(

					new InputStreamReader(

									  System.in));


FileOutputStream fileOut =

					new FileOutputStream("schueler.txt");


						System.out.println("Text eingeben:");

						String text = in.readLine();


						fileOut.write(



						text.getBytes(), 0, text.length());


						fileOut.close();



						}


//fehler abfangen, wenn datein nicht gefunden wird, oder es einen lesefehler gibt


			catch (FileNotFoundException e)

				{ //konstruktor


			System.out.print("Datei net gefunden:"

													  +e.toString());



				}



			catch (IOException e)

				{ //konstruktor


			System.out.print("Lesefehler:"

												  +e.toString());



				}



				}


}

und ein weiteres eine fensteroberfläche =>

import java.awt.*;

import java.awt.event.*;


class schreiben extends Frame

		{

			Label beschreibung = new Label ("Tragen sie alle Daten ein!", Label.CENTER);


			Label name1 = new Label("Name:", Label.CENTER);

			TextField name = new TextField(10);


			Label vorname1 = new Label("Vorname:", Label.CENTER);

			TextField vorname = new TextField(10);


			Label tel_nr1 = new Label("Tel.Nr.:", Label.CENTER);

			TextField tel_nr = new TextField(10);


			Label wohnort1 = new Label("Wohnort:", Label.CENTER);

			TextField wohnort = new TextField(10);


			Label plz1 = new Label("PLZahl:", Label.CENTER);

			TextField plz = new TextField(10);	


			Label aktion1 = new Label("Schreibe in die txt Datei:", Label.CENTER);

			Button aktion = new Button ("Schreibe!");


	public schreiben()

	{


		setLayout(new FlowLayout(FlowLayout.CENTER));


		add(beschreibung);

		add(name1);

		add(name);

		add(vorname1);

		add(vorname);

		add(tel_nr1);

		add(tel_nr);

		add(wohnort1);

		add(wohnort);

		add(plz1);

		add(plz);

		add(aktion1);

		add(aktion);

	}


	public static void main (String args[])

	{

		schreiben mainFrame = new schreiben();

		mainFrame.setSize(152,420);

		mainFrame.setTitle("Schreiben in eine Textdatei");

		mainFrame.setVisible(true);

	}

}

so, nun das prob. wie mache ich, das das prog unten, in einen textdaei schreib kann, mit den eingaben die man da macht?

kann mir einer helfen?

--

Bitte Code Tags benutzen. (Jaraz)

Link zu diesem Kommentar
Auf anderen Seiten teilen

sorry ich lern das erst gerade, hast was scriptartiges da? oder kannste mir sagen unter welchen schlüßelwörten ich suchen sollte

Ein guter Einstieg ist das Sun Swing Tutorial:

http://java.sun.com/docs/books/tutorial/uiswing/index.html

Sehr ausführlich, sehr gut verständlich und enthält eigentlich alles, was du brauchst um selbst mit dem Erstellen von Oberflächen zu beginnen. Also einfach reingucken und bei konkreten Problemen nochmal fragen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wo genau hakt es denn?

Du hast doch alles nötige schon im ersten Programm gemacht.

new FileOutputStream("schueler.txt");

fileOut.write(text.getBytes(), 0, text.length());

fileOut.close();
Mehr ist es nicht. Statt "text" benötigst Du halt den Inhalt aus dem zu schreibenden Textfeld, also z. B.
textfeld.getText();

Link zu diesem Kommentar
Auf anderen Seiten teilen

Als erstes würde ich mal einen WindoListener hinzufügen, damit du das Programm auch sauber verlassen kannst, und einen ActionListener damit auch was mit dem Button machen kannst.


implements WindowListener, ActionListener

Als nächstes die Methoden der Interfaces in deiner Klasse überschreiben. Siehe JavaDoc

public void windowActivated(WindowEvent e){

}

usw.

public void actionPerformed(ActionEvent e){}

Damit hast du schon die halbe Miete.

try{

FileOutputStream fos = new FileOutputStream(new File("C:/test.txt"));

String output= "Name    :"+name.getText()+"\r\n";

Das kommt dann in den ActionListener

Den Rest kriegst du ja wohl selbst hin ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Als erstes würde ich mal einen WindoListener hinzufügen, damit du das Programm auch sauber verlassen kannst

Dafür braucht es keinen WindowListener - JFrame#setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE) tuts auch.

implements WindowListener, ActionListener
Vom Stil her alles andere als sauber und schön anzusehen. Wofür gibt's schließlich innere und annonyme innere Klassen? Bringt ein ganzes Stück mehr Übersichtlichkeit ins System hinein und wartbarer ist es auch noch.

ich mach das seit 4 wochen [...] aber das ne hausaufgabe für morgen...
Dann hättest du vielleicht ein wenig früher anfangen sollen, dich mit der Materie zu beschäftigen. Was dir nämlich fehlt sind Grundlagen, die man nicht eben an einem Abend vermitteln und lernen kann - da gehört schon ein wenig mehr zu.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dafür braucht es keinen WindowListener - JFrame#setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE) tuts auch.

Er benutzt ein awt.Frame, wusste nicht das man das auch auf diesem Weg lösen kann.

om Stil her alles andere als sauber und schön anzusehen. Wofür gibt's schließlich innere und annonyme innere Klassen? Bringt ein ganzes Stück mehr Übersichtlichkeit ins System hinein und wartbarer ist es auch noch.

Ich mache das eigentlich auch nicht so, nutze dafür "Adapter"-Klassen, denn innere anonyme Klassen finde ich absolut unschön. Dann lieber schon eine Klasse bauen, in einem Listener-Package, das Frame als Instanz (Speicherfrage mal abgesehen) und über getter auf die elemente Zugreifen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Er benutzt ein awt.Frame, wusste nicht das man das auch auf diesem Weg lösen kann.
Stimmt, sehe ich ja auch jetzt erst. Na dann wird er noch ganz andere Probleme zu lösen haben. @OP: Wenn du nicht unbedingt mit reinem AWT arbeiten musst (und mir fällt kein triftiger Grund ein, warum das heutzutage noch so sein sollte) dann wechsle auf Swing.

Speicherfrage mal abgesehen
Welche Speicherfrage? Die Tatsache, dass ein Frame + ein Listener mehr Speicher verbraucht als ein Frame, der gleichzeitig einen Listener implementiert? Das sind Dinge, die man nun wirklich ignorieren kann - da gibt es in jeder Anwendung Bottlenecks, die deutlich schwerer wiegen, als die paar Bytes mehr an Bytecode, die im Speichern liegen.
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...