Newsgroup: it.comp.java
Titolo: Errore Stream Closed

In pratica sono quasi riuscito a risolvere il problemino di ieri, oggi però
mi si è posto un altro problema, in pratica ho cercato di creare un
programma che mi eliminasse da un file di testo le stringhe in cui è
presente // questo.
Ora il prog stavolta mi apre il file e me lo salva pure solo che mi da un
Errore StreamClosed e mi copia solo la prima stringa, come posso correggere
il problema e soprattutto a cosa è dovuto l'errore?
Ecco il programma:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.filechooser.*;
import java.io.Reader.*;
import java.io.*;
public class Scrivif_ extends JFrame{
private JButton origine, exitButton;
private JTextField comunicazioni;
public Scrivif_(){
super ("Prova programma");
Container c = getContentPane();
c.setLayout (new GridLayout (2, 3));
final JFileChooser fc = new JFileChooser();
final JFileChooser fz = new JFileChooser();
//FileReader filein = null;
//FileWriter fout = null;
origine = new JButton ("Seleziona il file");
origine.addActionListener (new ActionListener() {
                    public void actionPerformed (ActionEvent e){
                    int returnVal = fc.showOpenDialog (Scrivif_.this);
                    if (returnVal == JFileChooser.APPROVE_OPTION){
                       File folle = fc.getSelectedFile();
                      try{
                          FileReader filein = new FileReader (folle);
                     int returnVa = fz.showSaveDialog(Scrivif_.this);
                     if (returnVa == JFileChooser.APPROVE_OPTION){
                     File fdest = fz.getSelectedFile();
                      try{
                        FileWriter fout = new FileWriter (fdest);
         try{
                          BufferedReader in = new BufferedReader (filein);
                          PrintWriter out = new PrintWriter (fout);
                          while ( in.ready()){
                          String buffer = in.readLine();
                          if (buffer.indexOf ("//") <0){
                          out.print (buffer + "\n");
                          in.close();
                          out.close();
      }
      }
                        } catch (IOException h){ comunicazioni.setText
("errore" + h); };
                       } catch (IOException z){ comunicazioni.setText
("errore" + z); };
}
      }catch (IOException f){
                            comunicazioni.setText ("errore" + f);
       };
}
}
}
);
c.add (origine);
comunicazioni = new JTextField (70);
comunicazioni.setEditable (false);
c.add (comunicazioni);
exitButton = new JButton ("Esci");
exitButton.addActionListener ( new ActionListener(){
                    public void actionPerformed(ActionEvent e){
                    System.exit(0);
}
}
);
c.add(exitButton);
setSize (650, 100);
show();
}
public static void main (String args[]){
Scrivif_ app = new Scrivif_();
app.addWindowListener(
new WindowAdapter(){
                    public void windowClosing (WindowEvent e){
                    System.exit (0);
}
}
);
}
}

                           out.print (buffer + "\n");
Forse ti da quell'errore perchè la prima volta che trova "//"
TU gli chiudi lo stream.
Devi chiuderlo fuori dal while.


grazie problema risolto
"Luca Paganelli" <luca.pa...@FUCKfastwebnet.it> ha scritto nel messaggio
news:TdjV9.24006$lj5.2...@tornado.fastwebnet.it...
