Newsgroup: it.comp.java
Titolo: Vi prego aiutatemi urgente

Ho un problema con l'apertura e la scrittura di file su hd, in pratica
dovrei creare un programma che mi elimini i commenti da un file di testo
solo che il primo pblema sta a monte. In pratica non riesco a far prendere
un file dall'hd e a copiarlo da un'altra parte, se non risolvo questo
fondamentale problema non posso provare a proseguire il programma
assegnatomi come esercizio. Qui vi allego un programma che ho provato a
creare per la lettura e la scrittura di un file.
// prova programma che scrive su disco fisso
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Scrivif extends JFrame{
    private JButton origine, destinazione, copia, exitButton;
    private JTextField comunicazioni;
    public Scrivif(){
        super ("Prova copia file");
     Container c = getContentPane();
     c.setLayout (new GridLayout(2, 3));
     ActionEventHandler azione = new ActionEventHandler();
     origine = new JButton ("Seleziona file");
     origine.addActionListener (azione);
     c.add (origine);
     destinazione = new JButton ("Seleziona destinazione");
     destinazione.addActionListener (azione);
     c.add (destinazione);
     copia = new JButton ("Copia File");
     copia.addActionListener (azione);
     c.add (copia);
     comunicazioni = new JTextField (60);
     comunicazioni.setEditable (false);
     c.add (comunicazioni);
    exitButton = new JButton ("Uscita");
    exitButton.addActionListener (azione);
    c.add (exitButton);
     setSize (650,95);
     show();
    }
    public static void main (String args[]){
        Scrivif app = new Scrivif();
        app.addWindowListener (
        new WindowAdapter()
        {
            public void windowClosing (WindowEvent e) {
                System.exit (0);
            }
        }
        );
    }
        public class ActionEventHandler implements ActionListener{
        public void actionPerformed (ActionEvent e){
            if (e.getSource() == exitButton)
                System.exit (0);
            if (e.getSource() == origine){
                final JFileChooser fc = new JFileChooser();
                int returnVal = fc.showOpenDialog(Scrivif.this);
                if (returnVal == JFileChooser.APPROVE_OPTION) {
                    File file = fc.getSelectedFile();
            /*Questa parte avevo anche provato a scriverla in questo modo
               JFileChooser fin = new JFileChooser();
            if (fin.showOpenDialog(null) == JFileChooser.APPROVE_OPTION){
                File selectedFile = fin.getSelectedFile();
              Ma non funziona lo stesso, vi prego aiutatemi */
            }
            }
            if (e.getSource() == destinazione){
                JFileChooser fin = new JFileChooser();
            if (fin.showSaveDialog(null) == JFileChooser.APPROVE_OPTION){
                File destinationFile = fin.getSelectedFile();
            }
            }
            if (e.getSource() == copia){
                try{
                    FileReader in = new FileReader (file);
                    FileWriter out = new FileWriter ("destinationFile");
                    int c;
                    while ((c=in.read()) !=-1)
                    out.write(c);
                    in.close();
                    out.close();
                } catch (IOException f){
                                          comunicazioni.setText("errore " +
f);
                }
            }
        }
        }
}

 }
Per inciso non ho capito se sollevi un'eccezione oppure se
semplicemente non crei il file o non ci immetta nulla dentro!
Ciao.
Luca Paganelli

se io tolgo gli apici mi viene dato errore, il problema è che quando provo a
copiare il file mi viene detto selectedfile non trovato, ora come posso
risolvere il problema????
"Luca Paganelli" <luca.pa...@FUCKfastwebnet.it> ha scritto nel messaggio
news:b6ZU9.22514$lj5.2...@tornado.fastwebnet.it...


 un file dall'hd e a copiarlo da un'altra parte
http://space.tin.it/computer/csadun/javafaq.html#d1-51
-- 
Life's something u don't get out alive..
ObjectZone - 
http://space.tin.it/computer/csadun

 risolvere il problema????
Guarda bene come hai strutturato il "listener".
Praticamente hai costruito una catena di "if" per indagare
quale componente ha scatenato l'evento e nel corpo di
ognuno vai ad eseguire l'azione.
In particolare in due di essi inizializzi gli oggetti File che
poi vai ad utilizzare nel terzo, quello del codice che "sembra"
non funzionare.
Il problema dunque è che vai a definire delle variabili in un
blocco "if" - delimitato dunque da parentesi graffe - ed a
riusarle in un altro blocco "if".
Chiuse le graffe del primo "if" l'oggetto File istanziato viene distrutto
e non può essere utilizzato nel fottutissimo terzo "if".
La cosa migliore è creare due variabili private File della classe
Listener con
    private File sourceFile = null;
    private File destinationFile = null;
cosicchè siano sempre visibili a tutti gli IF.
Consigli:
-    Prima impara bene la grammatica JAVA
-    Poi leggi gli errori che ti da il compilatore perchè molto
        spesso riesce a spiegarti lui il marone.
Ciao.