Lecture et écriture depuis une Applet

javinc Messages postés 6 Date d'inscription samedi 2 juillet 2005 Statut Membre Dernière intervention 20 août 2006 - 5 mars 2006 à 11:07
Horfee Messages postés 188 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 août 2009 - 24 avril 2006 à 09:07
Je précise : le fichier à lire ou écrire est sur le même serveur que l'Applet.
Voici mon code :
méthode pour lire un fichier depuis mon Applet (elle marche)

public Vector<String> extraire(String fichier)
{
Vector<String> reponse;
URL TexteALire;
try
{
TexteALire=new URL (fen.getCodeBase(),fichier);
InputStream fluxEntree = TexteALire.openStream();
BufferedReader buffer = new BufferedReader(new InputStreamReader(fluxEntree));
String ligne = buffer.readLine();
if (ligne==null)
{
reponse = new Vector<String>();
}
else
{
reponse = new Vector<String>();
StringTokenizer st = new StringTokenizer(ligne,";");
while (st.hasMoreTokens())
{
String ajout = st.nextToken();
if (ajout.equals("#")) {ajout="";}
reponse.add(ajout);
}
}

}
catch (IOException e)
{
JOptionPane.showMessageDialog(null,"erreur 0");
reponse = new Vector<String>();
}
return reponse;
}

méthode pour écrire dans le fichier :


public void enregistrer(String fichier,Vector<String> liste)
{
URL TexteAEcrire;
try
{

TexteAEcrire=new URL (fen.getCodeBase(),fichier);
URLConnection connection = TexteAEcrire.openConnection();
OutputStream fluxSortie = connection.getOutputStream();
BufferedWriter buffer = new BufferedWriter(new OutputStreamWriter(fluxSortie));

/*
la version qui marchait pour une appli locale
FileWriter fluxSortie = new FileWriter(fichier);
BufferedWriter buffer = new BufferedWriter(fluxSortie);
*/

String ligne="";
for (int i=0;i<liste.size();i++)
{
String ajout=liste.get(i);
if (ajout.equals("")) {ajout="#";}
ligne = ligne+ajout+";";
}
buffer.write(ligne);
// pour vider le tampon dans le flux
buffer.flush();
// fermeture du flux
fluxSortie.close();
}
catch (IOException e)
{
JOptionPane.showMessageDialog(null,"erreur d'écriture"+e.getMessage());
}
}

L'erreur est du type "protocol doesn't support output" ou "DoOutput=false"
Si quelqu'un peut me dire où je me trompe...

3 réponses

Horfee Messages postés 188 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 août 2009
18 avril 2006 à 10:24
je ne sais pas si tu as resolu ton probleme... mais bon...
Sachant que c'est une applet, le code de ton applet se retrouve sur la machine client...donc normalement il n'est pas possible de demander directement l'ecriture sur un serveur (ou alors il faut que ce serveur autorise l'ecriture et la lecture publique, ce qui n'est quasiment jamais le cas), contrairement a des fichiers locaux.
Donc ton applet marchait tres bien en local parce que tu y avais les droits, alors que sur un serveur c'est interdit...
0
javinc Messages postés 6 Date d'inscription samedi 2 juillet 2005 Statut Membre Dernière intervention 20 août 2006
23 avril 2006 à 11:35
Et il n'y a aucun moyen de l'autoriser sur le serveur hote de l'applet?
0
Horfee Messages postés 188 Date d'inscription mercredi 9 avril 2003 Statut Membre Dernière intervention 10 août 2009
24 avril 2006 à 09:07
ben, je suis pas expert en la matiere... mais je pense pas que ce soit possible. Un moyen possible serait d'ecrire un servlet je pense... (ou si c un serveur apache/php, tu fais une page php avec les arguments necessaire, cad ton output)
0
Rejoignez-nous