Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [java] textarea e salvataggio su file

    salve
    avrei bisogno di una mano.
    devo fare un programma che dopo un'acquisizione da tastiera mi salvi ciò che ho scritto (per ora va benissimo in out e non in app) su di un file. qlc mi può aiutare?
    grazie
    /( ..:: ShArK ::.. )\

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,301
    per ora va benissimo in out e non in app
    Cosa vuol dire? :master:

    Comunque, se hai una TextArea (AWT, immagino), per salvarne il contenuto su di un file di testo:
    codice:
    TextArea ta = new TextArea();
    ...
    try {
       PrintStream ps = new PrintStream( new FileOutputStream("nomefile") );
       ps.println( ta.getText() );
       ps.close();
    } catch (Exception e) { e.printStackTrace(); }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    ecco a cosa sono arrivo (l'ho fatto con una applet)

    codice:
    import java.awt.event.KeyListener;
    import java.awt.event.KeyEvent;
    import java.awt.*;
    import java.applet.*;
    import java.io.*;
    
    public class testo extends Applet
    {
        TextArea TA=new TextArea();
        Label L1=new Label();
        Label L2=new Label();
       
        public void init()
        {
            add(L1,BorderLayout.NORTH);
            add(TA,BorderLayout.CENTER);
            add(L2,BorderLayout.SOUTH);
            L1.setText("Inserisci un testo da salvare su file. ENTER per salvare");
            TA.addKeyListener(new MyKeyListener());
        }
    
        public class MyKeyListener implements KeyListener
        {
            public void keyPressed(KeyEvent e)
            {
    
            }
    
            public void keyReleased(KeyEvent e)
            {
                int valore=e.getKeyCode();
                if (valore==10)
                {
                    new text();
                }
            }
    
            public void keyTyped(KeyEvent e)
            {
            }
    
        }
        
        public class text
        {
            public void text(String[] args) throws IOException 
            {
                    try
                    {
                        PrintStream ps = new PrintStream( new FileOutputStream("testosalvato.txt") );
                        ps.println(TA.getText());
                        ps.close();
                        L2.setText("Testo salvato in testosalvato.txt");
                    }
                    catch (Exception f)
                    {
                        f.printStackTrace();
                    }
            } 
        }
        
        
    
    }
    però nn mi funziona

    help me
    _____________________________________________
    per ora va benissimo in out e non in app
    _____________________________________________
    intendevo che tutte le volte che salvo su file lo riscrivo da zero e non accodo al vechio testo (scrittura in append)
    /( ..:: ShArK ::.. )\

  4. #4
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; non ti funzione perché tu non richiami il metodo text che hai definito nella classe text, bensì i costruttore di defualt della classe; in pratica facendo

    Codice PHP:
     public void keyReleased(KeyEvent e)
            {
                
    int valore=e.getKeyCode();
                if (
    valore==10)
                {
                    new 
    text();
                }
            } 
    Non fai altro che crearti una istanza della classe text; per far si che tu possa fare quello che ti serve utilizzando questa scrittura, dovresti ridefinire la tua classe text in questa maniera:

    Codice PHP:
    public class text
        
    {
            public 
    text() throws IOException 
            
    {
                    try
                    {
                        
    PrintStream ps = new PrintStream( new FileOutputStream("testosalvato.txt") );
                        
    ps.println(TA.getText());
                        
    ps.close();
                        
    L2.setText("Testo salvato in testosalvato.txt");
                    }
                    catch (
    Exception f)
                    {
                        
    f.printStackTrace();
                    }
            } 
        } 
    Ovviamente, poi, essendo la classe pubblica... devi salvarla in un altro file, non puoi salvarla nel file dell'applet; se volessi salvarla nel file dove c'è la classe dell'applet, la classe text non deve essere public; intendo dire chea non dovresti scrivere:
    Codice PHP:
    public class test 
    ma
    Codice PHP:
    class test 
    Se, poi vuoi utilizzare il metodo che ti sei scritto per salvare su file puoi fare, senza cambiare assolutamente nulla al tuo codice:

    Codice PHP:
            public void keyReleased(KeyEvent e)
            {
                
    int valore=e.getKeyCode();
                if (
    valore==10)
                {
                    (new 
    text()).text(null);
                }
            } 
    Inoltre devi stare attenti perchè le applet non possono scrivere sul file system del client dove vengono eseguite a meno che esse non siano firmate.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  5. #5
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da ShArK86

    ...
    (l'ho fatto con una applet)
    ...
    però nn mi funziona
    Un applet per scrivere in un file deve essere firmato come ha già detto Angelo1974; segui questa guida fino al punto 4: http://www.mokabyte.it/1999/11/signedapplet.htm

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  6. #6
    ti ringrazio dei tuoi consigli adesso l'ho fatto cosi pero mi da errore su
    codice:
     new Text();
    dice che "Exception java.io.IOException must be caught, or it must be declared in the throws clause of this method." non sono molto esperto e non so cosa manca.


    codice:
    import java.awt.event.KeyListener;
    import java.awt.event.KeyEvent;
    import java.awt.*;
    import java.applet.*;
    import java.io.*;
    
    public class testo extends Applet
    {
        TextArea TA=new TextArea();
        Label L1=new Label();
        Label L2=new Label();
       
        public void init()
        {
            add(L1,BorderLayout.NORTH);
            add(TA,BorderLayout.CENTER);
            add(L2,BorderLayout.SOUTH);
            L1.setText("Inserisci un testo da salvare su file. ENTER per salvare");
            TA.addKeyListener(new MyKeyListener());
        }
    
        class MyKeyListener implements KeyListener
        {
            public void keyReleased(KeyEvent e)
            {
                int valore=e.getKeyCode();
                if (valore==10)
                {
                    new Text();
                }
            }
            public void keyTyped(KeyEvent e)
            {
            }
            public void keyPressed(KeyEvent e)
            {
            }
        }
        
        class Text
        {
            public Text() throws IOException 
            {
                try
                {
                    PrintStream ps = new PrintStream( new FileOutputStream("testosalvato.txt") );
                    ps.println(TA.getText());
                    ps.close();
                    L2.setText("Testo salvato in testosalvato.txt");
                }
                catch (Exception f)
                {
                    f.printStackTrace();
                }
            } 
        }
    }
    /( ..:: ShArK ::.. )\

  7. #7
    Originariamente inviato da netarrow
    Un applet per scrivere in un file deve essere firmato come ha già detto Angelo1974; segui questa guida fino al punto 4: http://www.mokabyte.it/1999/11/signedapplet.htm

    ma penso che quello sia il problema minore perche ho tutto nella stesa cartella sul server (file html file class e file txt) il problema è nel sorgente del class
    /( ..:: ShArK ::.. )\

  8. #8
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Ciao; l'errore che ti da è dovuto al fatto che non hai catturato l'IOException che potrebbe generarsi; il fatto che tu abbia dichiarato il costruttore della classe in questo modo:

    Codice PHP:
    public text() throws IOException 
    significa che tu deleghi la cattura di questa eccezione a chi invoca il metodo (in questo caso il costruttore della classe); quindi devi catturare l'eccezione IOException; in pratica devi fare una cosa del tipo:

    Codice PHP:
    public void keyReleased(KeyEvent e)
            {
                
    int valore=e.getKeyCode();
                if (
    valore==10)
                {
                   try{
                    new 
    text();
                   }catch(
    IOException io){
                          
    io.printStackTrace();
                    }
                }
            } 
    Cmq tieni conto del fatto che potresti avere eccezione dovuta al fatto che non puoi scrivere sul file system.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

  9. #9
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    Originariamente inviato da ShArK86
    ma penso che quello sia il problema minore perche ho tutto nella stesa cartella sul server (file html file class e file txt) il problema è nel sorgente del class
    Ora che mi ci hai fatto pensare un applet può scrivere in un file senza essere firmato, ma deve essere una "classe trusted"(affidabile). Un applet è affidabile, per esempio, se è accessibile dal percorso di classe dell'utente.

    Per capire dov'è il problema, se vedi che l'eccezione è una SecurityException il problema è nella sicurezza.
    Per scrivere sul server potresti usare jsp, php o le servlet, un applet è client-side e si adatta alle impostazioni di sicurezza del browser e del policy di Java.

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  10. #10
    con la modifica consigliata da Angelo1974 continua a non andarmi...inizio a pensare che sia un problema di scrittura su file da parte dell'applet. a dir la verità dovevo fare un programma per scuola in java che acquisiti caratteri da tastiera li salvase poi su un file. l'idea dell'applet m'era venuta a me perche mi sembrava + facile. posso anche fare un'aplicazione java con una finestra ma nn avevo voglia di stare a fare tutte le cose della finestra
    /( ..:: ShArK ::.. )\

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.