PDA

View Full Version : java applet-scrittura dati su file


italo2008
16-04-2009, 11:12
salve.ho trovato questa applet,che in locale (facendola correre da Eclipse) funziona correttamente: in pratica legge il contenuto del file pesi.xml (che si trova nella cartella del progetto), mette tutto il contenuto del file in una stringa scrive la stringa nel file hello.xml, che a sua volta viene scritto nel mio HD.


import java.applet.Applet;
import java.awt.Graphics;
import java.io.*;
import java.awt.Color;

public class CopiaXML extends Applet
{
public String createFile()
{
String strReturn ;
String fileName = "";
setBackground(Color.white);
int next;
char nextc;
try
{
fileName = System.getProperty("user.home");
fileName += System.getProperty("file.separator");
fileName += "hello.xml";
String msg="";



// apre il file in lettura
FileReader filein = new FileReader("pesi.xml");


do {
next = filein.read(); // legge il prossimo carattere

if (next != -1) { // se non e' finito il file
nextc = (char) next;
msg=msg+nextc;
//System.out.print(nextc); // stampa il carattere
}

} while (next != -1);

filein.close(); //chiude il file
System.out.println();


FileWriter fos = new FileWriter(fileName);
fos.write(msg, 0, msg.length());
fos.close();
strReturn = new String("File " + fileName + " creato con successo");
}
catch (Exception e)
{
System.out.println("Eccezione di tipo " + e);
e.printStackTrace();
strReturn = new String("Impossibile creare il file!");
}
return strReturn;
}

public void paint(Graphics g)
{
g.setColor(Color.blue);
g.drawString("Applet WriteToDiskApplet", 120, 50);
g.setColor(Color.RED);
g.drawString(createFile(), 50, 100);
}
}



ora devo far funzionare online quest'applet,per cui ho messo tutti i file necessari nel server (compreso il file pesi.xml). Il problema è che, quando la faccio correre, mi trovo sulla console "FileNotFoundException: pesi.xml" ....ma il file c'è! è lì nella stessa cartella di tutti gli altri file...perchè non lo vede??

ps.lasciamo perdere per ora il discorso che,per funzionare,l'applet dev'essere firmata....l'ho già firmata e il problema non credo riguardi questo...ho già fatto altre applet firmate e funzionano correttamente,solo che non dovevo leggere file dal server,a differenza di adesso.

PGI-Bis
16-04-2009, 14:59
"pesi.xml" viene risolto rispetto alla directory "user.dir".

Non so che valore abbia user.dir per un applet. Dal risultato direi che non è l'URL di base dell'applet :D.

Usa un URL (getClass().getResource se il file è nel classpath) e sei a posto.