Hi Leute,
nach langer Zeit habe ich mich mal wieder an Java gesetzt und habe mich mit Dateien beschäftigt. Ich gebe über eine GUI in ein Textfeld etwas ein und speichere dies in einer Datei. Anschließend möchte ich den Inhalt dieser Datei laden und in ein andere Textfeld auf der gleichen GUI anzeigen lassen. Hier wird mir aber ein Fehler geworfen. Einige Varianten habe ich jetzt durch, aber einen Ansatz habe ich immer noch nicht.
Vlt. könnt ihr mir ja helfen bzw. einen Tipp geben.
Mein Code:
Hauptklasse:
Datei wird gelesen:
Was genau muss ich wo ändern, damit die Datei geladen werden kann?
Besten Dank im Voraus
nach langer Zeit habe ich mich mal wieder an Java gesetzt und habe mich mit Dateien beschäftigt. Ich gebe über eine GUI in ein Textfeld etwas ein und speichere dies in einer Datei. Anschließend möchte ich den Inhalt dieser Datei laden und in ein andere Textfeld auf der gleichen GUI anzeigen lassen. Hier wird mir aber ein Fehler geworfen. Einige Varianten habe ich jetzt durch, aber einen Ansatz habe ich immer noch nicht.
Vlt. könnt ihr mir ja helfen bzw. einen Tipp geben.
Mein Code:
Hauptklasse:
Java:
import java.awt.Container;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.ProcessBuilder.Redirect;
import java.net.URL;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class DateiErstellung extends JFrame implements ActionListener {
ReadFile3 rf3;
JButton speichern = new JButton("Speichern"), schliessen = new JButton(
"Schliessen"), laden=new JButton("laden");
JLabel name = new JLabel("Name: ", JLabel.RIGHT), wohnort = new JLabel(
"Wohnort: ", JLabel.RIGHT), beruf = new JLabel("Beruf: ",
JLabel.RIGHT);
JTextField nameText = new JTextField(10), wohnortText = new JTextField(10),
berufText = new JTextField(10);
Container c;
Font font = new Font("Name", Font.PLAIN, 18);
public DateiErstellung() {
setSize(400, 300);
setLocationRelativeTo(null);
setLayout(new GridLayout(4, 2));
c = getContentPane();
c.add(name);
name.setFont(font);
c.add(nameText);
c.add(wohnort);
wohnort.setFont(font);
c.add(wohnortText);
c.add(beruf);
beruf.setFont(font);
c.add(berufText);
c.add(speichern);
speichern.setFont(font);
speichern.addActionListener(this);
c.add(laden);
laden.setFont(font);
laden.addActionListener(this);
c.add(schliessen);
schliessen.setFont(font);
schliessen.addActionListener(this);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new DateiErstellung();
}
@Override
public void actionPerformed(ActionEvent e) {
File fw = new File("D:\\Dokumente\\Alexander\\Java\\Test\\test.txt");
if (e.getSource() == speichern) {
if (fw.exists() != true) {
try {
fw.createNewFile();
System.out.println("Datei wurde erstellt");
JFileChooser speichernJFC = new JFileChooser();
int returnVal = speichernJFC.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
speichernJFC.setCurrentDirectory(fw);
try {
String words = nameText.getText() + " "
+ wohnortText.getText() + " "
+ berufText.getText();
BufferedWriter bw = new BufferedWriter(
new FileWriter(fw, true));
bw.write(words + "\n");
bw.write(System.getProperty("line.separator"));
bw.close();
JOptionPane.showMessageDialog(null, "Datei: "
+ speichernJFC.getSelectedFile().getName()
+ " wird gespeichert", "Datei speichern",
JOptionPane.INFORMATION_MESSAGE);
} catch (IOException e1) {
e1.printStackTrace();
}
} else
JOptionPane.showMessageDialog(null,
"Datei wurde nicht gespeichert", "Fehler",
JOptionPane.ERROR_MESSAGE);
} catch (IOException aw) {
System.out.println(aw);
}
} else {
JFileChooser speichernJFC = new JFileChooser();
int returnVal = speichernJFC.showSaveDialog(this);
if (returnVal == JFileChooser.APPROVE_OPTION) {
speichernJFC.setCurrentDirectory(fw);
try {
String words = nameText.getText() + " "
+ wohnortText.getText() + " "
+ berufText.getText();
BufferedWriter bw = new BufferedWriter(new FileWriter(
fw, true));
bw.write(words + "\n");
bw.write(System.getProperty("line.separator"));
bw.close();
JOptionPane.showMessageDialog(null, "Datei: "
+ speichernJFC.getSelectedFile().getName()
+ " wird gespeichert", "Datei speichern",
JOptionPane.INFORMATION_MESSAGE);
} catch (IOException e1) {
e1.printStackTrace();
System.out.println(e1);
}
} else
JOptionPane.showMessageDialog(null,
"Datei wurde nicht gespeichert", "Fehler",
JOptionPane.ERROR_MESSAGE);
}
} else if (e.getSource() == schliessen) {
this.dispose();
}
else if(e.getSource() == laden){
///Dies funktioniert nicht///
ReadFile3 rf3 = null;
///Dies funktioniert auch nicht///
// ReadFile3 rf3 = new ReadFile3();
String txt=rf3.toString();
// String str=txt.getContent().toString();
// wohnortText.setText(str);
wohnortText.setText(txt);
}
}
}
Datei wird gelesen:
Java:
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
class ReadFile3
{
@SuppressWarnings("null")
public ReadFile3()
{
DateiErstellung de = null;
File file =new File("D:\\Dokumente\\Alexander\\Java\\Test\\test.txt");
Scanner s=null;
try {
s = new Scanner(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String zeile="";
while( (zeile = s.nextLine()) != null )
{
de.beruf.setText(zeile);
}
s.close();
}
}
Was genau muss ich wo ändern, damit die Datei geladen werden kann?
Besten Dank im Voraus