Zum Inhalt springen

mit java in eine txt datei schreiben


Empfohlene Beiträge

Geschrieben

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)

Geschrieben

sorry ich lern das erst gerade, hast was scriptartiges da? oder kannste mir sagen unter welchen schlüßelwörten ich suchen sollte, wär dir shr dankbar für ein paar infos. steh im mom im wlad

Geschrieben
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.

Geschrieben

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();

Geschrieben

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 ;)

Geschrieben

hmm... danke, aber wie gesagt ich mach das seit 4 wochen, und bin kein crack da drain, wirklich net. will net um hilfe flehen, aber das ne hausaufgabe für morgen... ich hab nichts ausser diesem java in 21 tagen buch. und da steht net wirklich viel drin

Geschrieben
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.
Geschrieben

ja ich weiß... werds nachholen, habs übern umweg gebacken bekommen. d.h. die aufgabe die zu lösen war, sind die beiden sachen oben. und ich wollte halt ein bisschen besser sein / mehr machen, und das grafisch machen mit so einem fenster halt. naja, jute nacht noch :D

Geschrieben
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.

Geschrieben
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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...