A więc nadpisujesz. Jeżeli "str = inbr.readLine();", to po każdej iteracji Twojej pętli sczytującej dane z pliku tekstowego następuje przypisanie innej wartości do "str", a Ty za każdym razem metodą "setText(str)" tą nową wartość ustawiasz dla JTextArea - ustawiasz, nie dodajesz. Jeżeli chciałbyś, by kolejne linijki pobranego tekstu były "dodawane" do tych linijek już do JTextArea przesłanych, to powinieneś utworzyć sobie jeszcze jedną zmienną np. typu String, powiedzmy "getTxt" i ustawiać jej wartość na zawartość JTextArea.getText(), po czym dopiero powinieneś ustawiać wartość JTextArea.setText(getTxt + '\n' + str).
EDIT#
Napisałem Ci krótką aplikację demo zapisującą i odczytującą dane z wykorzystaniem JTextArea. Przeanalizuj kod i w razie niejasności pytaj. Mam nadzieję, że dzięki niej rozjaśni Ci się temat prostego zapisu i odczytu danych. Polecam również analizę przykładów Oracle:
http://docs.oracle.com/javase/tutorial/essential/io/buffers.html
Screen apki:
Link do pobrania aplikacji demo:
http://wrzucacz.pl/file/9821376491618/ZapisOdczytDemo.jar
lub
http://wrzuca.cz/file/9821376491618/ZapisOdczytDemo.jar
Kod apki:
import java.awt.*;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.io.*;
public class SomeClass extends JFrame {
private JPanel contentPane;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
SomeClass frame = new SomeClass();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public SomeClass() {
setTitle("Zapis/Odczyt");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(365, 300);
setLocationRelativeTo(null);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
GridBagLayout gbl_contentPane = new GridBagLayout();
gbl_contentPane.columnWidths = new int[]{98, 150, 37, 0};
gbl_contentPane.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
gbl_contentPane.columnWeights = new double[]{1.0, 1.0, 0.0, Double.MIN_VALUE};
gbl_contentPane.rowWeights = new double[]{1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE};
contentPane.setLayout(gbl_contentPane);
JScrollPane scrollPane = new JScrollPane();
GridBagConstraints gbc_scrollPane = new GridBagConstraints();
gbc_scrollPane.gridheight = 7;
gbc_scrollPane.gridwidth = 3;
gbc_scrollPane.insets = new Insets(0, 0, 5, 5);
gbc_scrollPane.fill = GridBagConstraints.BOTH;
gbc_scrollPane.gridx = 0;
gbc_scrollPane.gridy = 0;
contentPane.add(scrollPane, gbc_scrollPane);
final JTextArea textArea = new JTextArea();
scrollPane.setViewportView(textArea);
JLabel plikLabel = new JLabel("Lokalizacja pliku");
GridBagConstraints gbc_plikLabel = new GridBagConstraints();
gbc_plikLabel.anchor = GridBagConstraints.EAST;
gbc_plikLabel.insets = new Insets(0, 0, 5, 5);
gbc_plikLabel.gridx = 0;
gbc_plikLabel.gridy = 7;
contentPane.add(plikLabel, gbc_plikLabel);
final JTextField plikField = new JTextField();
GridBagConstraints gbc_plikField = new GridBagConstraints();
gbc_plikField.gridwidth = 2;
gbc_plikField.insets = new Insets(0, 0, 5, 0);
gbc_plikField.fill = GridBagConstraints.HORIZONTAL;
gbc_plikField.gridx = 1;
gbc_plikField.gridy = 7;
contentPane.add(plikField, gbc_plikField);
JButton zapisz = new JButton("Zapisz");
zapisz.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
BufferedWriter writer;
String plik = plikField.getText();
try {
/*
* "new FileWriter(plik, true)" jeżeli chcesz dodawać
* napisany tekst do tego, któy już znajduje się w pliku
*/
writer = new BufferedWriter(new FileWriter(plik));
textArea.write(writer);
writer.close();
} catch (IOException e) {
JOptionPane.showMessageDialog(null, e);
}
}
});
GridBagConstraints gbc_zapisz = new GridBagConstraints();
gbc_zapisz.insets = new Insets(0, 0, 0, 5);
gbc_zapisz.gridx = 0;
gbc_zapisz.gridy = 8;
contentPane.add(zapisz, gbc_zapisz);
JButton odczytaj = new JButton("Odczytaj");
odczytaj.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
BufferedReader reader;
String plik = plikField.getText();
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(plik)));
textArea.read(reader, null);
reader.close();
} catch (IOException e) {
JOptionPane.showMessageDialog(null, e);
}
}
});
GridBagConstraints gbc_odczytaj = new GridBagConstraints();
gbc_odczytaj.insets = new Insets(0, 0, 0, 5);
gbc_odczytaj.gridx = 1;
gbc_odczytaj.gridy = 8;
contentPane.add(odczytaj, gbc_odczytaj);
JButton wyczysc = new JButton("Wyczy\u015B\u0107");
wyczysc.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
plikField.setText("");
textArea.setText("");
}
});
GridBagConstraints gbc_wyczysc = new GridBagConstraints();
gbc_wyczysc.gridx = 2;
gbc_wyczysc.gridy = 8;
contentPane.add(wyczysc, gbc_wyczysc);
}
}
Pozdrawiam serdecznie :)