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
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 ::.. )\
Cosa vuol dire? :master:per ora va benissimo in out e non in app
Comunque, se hai una TextArea (AWT, immagino), per salvarne il contenuto su di un file di testo:
Ciao.codice:TextArea ta = new TextArea(); ... try { PrintStream ps = new PrintStream( new FileOutputStream("nomefile") ); ps.println( ta.getText() ); ps.close(); } catch (Exception e) { e.printStackTrace(); }
"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
ecco a cosa sono arrivo (l'ho fatto con una applet)
però nn mi funzionacodice: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(); } } } }
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 ::.. )\
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
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 void keyReleased(KeyEvent e)
{
int valore=e.getKeyCode();
if (valore==10)
{
new text();
}
}
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 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();
}
}
}
maCodice PHP:
public 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:
class test
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.Codice PHP:
public void keyReleased(KeyEvent e)
{
int valore=e.getKeyCode();
if (valore==10)
{
(new text()).text(null);
}
}
Ciao
Se vuoi trovare l'arcobaleno, devi sopportare la pioggia
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.htmOriginariamente inviato da ShArK86
...
(l'ho fatto con una applet)
...
però nn mi funziona
Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)
ti ringrazio dei tuoi consigli adesso l'ho fatto cosi pero mi da errore sudice 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:new Text();
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 ::.. )\
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 classOriginariamente 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
/( ..:: ShArK ::.. )\
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:
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 text() throws IOException
Cmq tieni conto del fatto che potresti avere eccezione dovuta al fatto che non puoi scrivere sul file system.Codice PHP:
public void keyReleased(KeyEvent e)
{
int valore=e.getKeyCode();
if (valore==10)
{
try{
new text();
}catch(IOException io){
io.printStackTrace();
}
}
}
Ciao
Se vuoi trovare l'arcobaleno, devi sopportare la pioggia
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.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
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)
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 ::.. )\