Zapisywanie i otwieranie

0

W Javie programuje od paru dni, na razie wszystko szło jak z płatka, ale podczas pisania prostego edytora tekstu natknąłem się na problem. Kompilator wszystko ładnie kompiluje, ale program nie chce otwierać lub zapisywać danych do pliku, na dodatek zamykanie działa =l męcze się z tym już od dwóch dni. Proszę o to kod AcionListenera, rzućcie na niego okiem.

public void actionPerformed(ActionEvent e) {
String command=e.getActionCommand();
if(command.equals("Zamknij")){
System.exit(0);
}    
/******************************************************************/
else if(command.equals("Zapisz")){
String nazwa=text.getText();
String tekst=area.getText();
try{
BufferedWriter bw=new BufferedWriter(new FileWriter(nazwa));
bw.write(tekst,0,tekst.length());
bw.flush();
bw.close();
}
catch(Exception ek){}
}
/******************************************************************/
else if (command.equals("Otwórz")){
String nazwa=text.getText();
String linia;
try{
BufferedReader br=new BufferedReader(new FileReader(nazwa));
while((linia=br.readLine())!=null){
area.append(linia+"\n");
}
br.close();
}
catch(Exception ek){}
}
/******************************************************************/
else if(command.equals("Nowy")){
area.setText("1.2.3.4.5.");
}
}//zamyka actionListenera
}//zamyka program 
0

Co do twojego "Zapisz" to może spróbuj tak:

else if(command.equals("Zapisz")){
String nazwa = text.getText();
try{
BufferedWriter bw = new BufferedWriter(new FileWriter(nazwa));
bw.write(area.getText());
bw.close();
}

spróbuj na początek nazwę pliku wpisac na sztywno: np.: "test.txt"

Zaś co do otwórz to może to pomoże :

else if (command.equals("Otwórz")){
String nazwa=text.getText();
String linia;
try{
BufferedReader br = new BufferedReader(new FileReader(new File(ścieżka/do/pliku/nazwa.rozszerzenie)));
area.read(br);
}
br.close();
}

Nie wiem czy używasz JTextPane czy JTextArea, ja używam JTextPane i to co napisałem mi działa, ale nie wiem czy w JTextArea to samo zadziała.


Mordek

0

Używam JTextArea, ale zobacze na tym co ty mówiłeś, raczej dalej powinienem sobie poradzić skoro tobie działa, jakby co to będę w kontakcie =)

0

No dobra problemów ciąg dalszy. Mam taki kod na otwieranie pliku:

 if (command.equals("Odczytaj")){
String nazwa=pole.getText();
String linia;
try {
BufferedReader br=new BufferedReader(new FileReader(nazwa));
while((linia=br.readLine())!=null) {
area.append(linia+'\n');
br.close();
}
}catch(Exception ek){}
}

Tylko problem w tym, że program wyświetla tylko jeden (pierwszy) wiersz tekstu, a inne chociaż są w tym pliku, nawet po wielokrotnym użyciu przycisku nie wyświetlają się.
Zapisywanie już zrobiłem, korzystając z kodu swojego jak i @up'a =)

EDIT: mam działa, poprawny kod

  if (command.equals("Odczytaj")){
String nazwa=pole.getText();
String linia;
try {
BufferedReader br=new BufferedReader(new FileReader(nazwa));
while((linia=br.readLine())!=null) {
area.append(linia+'\n');
}br.close();
}catch(Exception ek){}
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1