Hallo,
das Einlesen von Text aus einer Datei in eine JTextArea bekomme ich leider nicht 100% hin. Also das Einlesen ist ja im Grunde ziemlich einfach und funktioniert tadellos. Nur wenn der Text am Anfang oder Ende eine oder mehrere Leerzeilen hat fehlt manchmal eine Leerzeile oder es ist eine zuviel, je nach dem wie ich die Schleife zum Einlesen implementiert habe. Habs leider noch nicht hinbekommen das das Einlesen für alle Testfälle korrekt arbeitet. Hier bspw. in der unteren Implementierung fehlt für den Fall zwei eine Leerzeile nach dem Einlesen.
Testfälle:
Textdatei mit einer Leerzeile
Textdatei mit zwei Leerzeilen
Textdatei mit drei Leerzeilen
Testprogramm:
Vg Erdal
das Einlesen von Text aus einer Datei in eine JTextArea bekomme ich leider nicht 100% hin. Also das Einlesen ist ja im Grunde ziemlich einfach und funktioniert tadellos. Nur wenn der Text am Anfang oder Ende eine oder mehrere Leerzeilen hat fehlt manchmal eine Leerzeile oder es ist eine zuviel, je nach dem wie ich die Schleife zum Einlesen implementiert habe. Habs leider noch nicht hinbekommen das das Einlesen für alle Testfälle korrekt arbeitet. Hier bspw. in der unteren Implementierung fehlt für den Fall zwei eine Leerzeile nach dem Einlesen.
Testfälle:
Textdatei mit einer Leerzeile
Textdatei mit zwei Leerzeilen
Textdatei mit drei Leerzeilen
Testprogramm:
Code:
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class TextRead extends JFrame implements ActionListener {
JTextArea t = new JTextArea();
JScrollPane s = new JScrollPane(t);
JButton b = new JButton("read");
JTextField tf = new JTextField("C:\\...");
public TextRead() {
b.addActionListener(this);
setLayout(new BorderLayout());
setSize(500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setAlwaysOnTop(true);
add(b, BorderLayout.NORTH);
add(s, BorderLayout.CENTER);
add(tf, BorderLayout.SOUTH);
setVisible(true);
}
public static void main(String[] args) {
TextRead tr = new TextRead();
}
public void actionPerformed(ActionEvent e) {
String text = "";
String path = tf.getText();
try {
BufferedReader input = new BufferedReader(new FileReader(path));
String line;
if ((line = input.readLine()) != null)
text = line;
while ((line = input.readLine()) != null) {
text = text + '\n' + line;
}
if (text.endsWith("\n"))
text = text + "\n";
input.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
t.setText(text);
setTitle("Line: " + t.getLineCount() + " Pfad: "
+ path.substring(path.length() - 10, path.length()));
}
}
Vg Erdal