Eingegebenes Speichern und Laden

Status
Nicht offen für weitere Antworten.

Swiss

Mitglied
Hi all.

Wie ihr seht bin ich neu und habe viele brennende Fragen :wink: .

Die grösste ist folgende:

Wie kann ich mit Java eingegebe Daten speichern und dann später wieder öffnen? Ich habe zu diesem Beispiel mal angefangen ein kleines "Notizprogramm" zu schreiben, dass nichts weiter können muss, als eigentlich einen String speichern und später, wenn ich die Notizen wieder abrufen will, wieder laden. Button zum speichern fehlt noch, ich weiss ja nicht was der für ne Funktion haben muss um zu speichern. Bitte gebt doch gerade anhand dieses Beispieles Antwort, also wie ich den Syntax erweitern muss mit einer Erklärung das es auch ich Dooofie verstehe 😎 .

Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Notizprogramm extends JFrame{
	public static void main(String[] args) {
		Notizprogramm ueberschrift = new Notizprogramm("Notizprogramm");
		
		ueberschrift.pack();
		ueberschrift.setSize(200,100); 
		ueberschrift.setVisible(true); 
	}
	
	  Notizprogramm(String titel) {
		    super(titel); 
	  
	  
	    try {
	        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
	     }
	     catch(Exception ex) {
	        System.err.println("Fehler bei Notizprogramm!\n"); 
	     }
	    
	     
	     //----------------Eingabefenster------------------
	 
	     //Panel erstellen wo das Eingabefenster draufkommen soll
	     JPanel zelle1 = new JPanel();

	     //Einstellungen und einfügen auf die Zelle
	     JTextField text1 = new JTextField(20);
	     text1.setText("Notiz");
	     zelle1.add(text1);
	     
	     //Hinzufügen der Zelle aufs Fenster
	     add(zelle1);
	     
	     //-------------------------------------------------
	     
	     
	     //----------------Speichern-Button-----------------
	     
	     
	  }
}

Vielen Dank im Voraus.
Swiss :bae:
 
Button hinzufügen

ActionListener dem Button hinzufügen

Im ActionListener definieren was bei einem click auf den Button gemacht werden soll. (Eingabe aus dem Textfield auslesen und abspeichern (Datei, Datenbank, etc...))
 
Jetzt stellt sich die frage ob du eine Instanz deiner Klasse speichern willst oder nur einen string.
Ist instanz überhaupt das richtige wort oder sollt ich lieber objekt sagen?

für einen string kannst ne normale text datei nehmen.

Code:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;


public class Textdatei{
	
	private String name = null; //für den namen der textdatei
	
	public Textdatei(String name){ 
		this.name = name; //Der Name der Textdatei wird über den Konstruktor festgelegt
		this.write(""); //erzeugt wenn nicht schon vorhanden eine leere TXT
	}
	
	/*------------------Methode zum beschreiben der Datei-----------------------------*/
	public void write(String s){
		
		try {	
			BufferedWriter out = new BufferedWriter(
		                         new OutputStreamWriter(
		                         new FileOutputStream( this.name ) ) );
		    out.write( s, 0, s.length() );
		    out.newLine();
		    out.close();  
		} catch( IOException ex ) {
			System.out.println( ex );
		}
		
	}
	
	/*------------------Methode zum Lesen der Datei-----------------------------------*/
	public String read(){
		String s = null;
		StringBuffer sBuff = new StringBuffer();
		
	    try {
	      BufferedReader in = new BufferedReader(
	                          new InputStreamReader(
	                          new FileInputStream( this.name ) ) );
	      while( (s = in.readLine()) != null ) {
	    	  sBuff.append(s+"\n");
	      }
	      in.close();
	    } catch( FileNotFoundException ex ) {
	    	System.out.println("Datei nicht vorhanden.");
	    } catch( Exception ex ) {
	      System.out.println( ex );
	    }
	    return sBuff.toString(); //StringBuffer als String zurück geben
	}
	
	
	
	/*----------Main Methode-----------------------------------------------------------*/
	public static void main(String[] args) {

		//Erzeuge ein Objekt der Klasse
		Textdatei ichBinEinName = new Textdatei("Test.txt");

                //etwas in die Datei schreiben
		ichBinEinName.write("Ich bin ein String der in die Textdatei geschrieben wird.");


                //etwas aus der datei lesen und anschließend ausgeben
		String ausDatei = ichBinEinName.read();
		System.out.println(ausDatei);
	}
}

Diese Klasse sollte funktionieren
es fehlt zwar noch ne get bzw set methode für den filename aber das is net so wild
in der mainmethode sind 2 bsp. zu handhabung


solltest du irgendwann ma ganze objekte abspeichern wollen solltest du nach serialisierung googeln
wobei es da auch noch was besseres gibt aber damit kenn ich mich net aus
serialisierung aht nur den nachteil wenn du nur ne methode leicht änderst kannste alte speicherdateien net mehr öffnen. Aber ma schaun vlt schreib ich dazu gleich auch noch was obwohl google genug links dazu hat


Edit:
achja aber bitte nicht einfach kopieren oder vorher wenigsten die links oben einma durchlesen sind sehr hilfreich
denn damit und mit google hab ich meins grad hinbekommen
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben