[Applet] Actions sur fichiers...

Actions sur fichiers... [Applet] - Java - Programmation

Marsh Posté le 20-12-2002 à 17:32:20    

NOTE : Je debute en JAVA, donc si vous voyez une enormite, soyez indulgent :).
Bonjour a tous,
 
Apres avoir consulter le forum de long en large, et apres de nombreuses heures de galere, je desespere, voici mon probleme... :
 
Suite a quelques infos glanées ici meme, j'ai reussi a faire lire un fichier texte par mon applet, se fichier se trouve sur le serveur.
 

Code :
  1. try {
  2. URL hote = new URL("http://128.1.50.55/txtchat/fichier.txt" );
  3. contenu.setText(hote.getFile());
  4. BufferedReader in = new BufferedReader( new InputStreamReader( hote.openStream() ) );
  5. etc.....}
  6. catch (IOException exc) {
  7. message.setText("Erreur acces Fichier" );
  8. }


 
Serait il possible de ce baser sur le meme principe pour ecrire dans un fichier se trouvant sur le serveur, via l'applet??
Evidement, un bete fileoutputstream me genere une erreur de securite, c normal me direz vous ;).
J'ai essayer en passant l'URL de mon fichier dans une URI (via un getCodeBase() ), puis injecter mon URI dans un objet FILE, et la, erreur de securite...
 
J'ai aussi essayer par un OutputStreamWriter, mais la, rien de proband, il me fait un exception IO, aucun resultat.
Merci.
 

Reply

Marsh Posté le 20-12-2002 à 17:32:20   

Reply

Marsh Posté le 21-12-2002 à 12:13:15    

:hello: Archeon
 
(up deguised)


---------------
La musique c'est comme la bouffe, tu te souviens du restaurant dans lequel t'as bien mangé 20 ans plus tôt, mais pas du sandwich d'il y a 5 minutes :o - Plugin pour winamp ©Harkonnen : http://harko.free.fr/soft
Reply

Marsh Posté le 21-12-2002 à 12:17:26    

Archeon a écrit :

NOTE : Je debute en JAVA, donc si vous voyez une enormite, soyez indulgent :).
Bonjour a tous,
 
Apres avoir consulter le forum de long en large, et apres de nombreuses heures de galere, je desespere, voici mon probleme... :
 
Suite a quelques infos glanées ici meme, j'ai reussi a faire lire un fichier texte par mon applet, se fichier se trouve sur le serveur.
 

Code :
  1. try {
  2. URL hote = new URL("http://128.1.50.55/txtchat/fichier.txt" );
  3. contenu.setText(hote.getFile());
  4. BufferedReader in = new BufferedReader( new InputStreamReader( hote.openStream() ) );
  5. etc.....}
  6. catch (IOException exc) {
  7. message.setText("Erreur acces Fichier" );
  8. }


 
Serait il possible de ce baser sur le meme principe pour ecrire dans un fichier se trouvant sur le serveur, via l'applet??
Evidement, un bete fileoutputstream me genere une erreur de securite, c normal me direz vous ;).
J'ai essayer en passant l'URL de mon fichier dans une URI (via un getCodeBase() ), puis injecter mon URI dans un objet FILE, et la, erreur de securite...
 
J'ai aussi essayer par un OutputStreamWriter, mais la, rien de proband, il me fait un exception IO, aucun resultat.
Merci.
 
 

je viens de retrouver une portion de code que j'avais faite pour ca :

Code :
  1. package stage;
  2. import java.io.*;
  3. import java.net.*;
  4. import java.rmi.*;
  5. import java.rmi.server.UnicastRemoteObject;
  6. import java.rmi.registry.*;
  7. /**
  8. * Class implementing a remote record for employees
  9. *
  10. * @version  <strong>0.1</strong> - October 2000
  11. * @author   <a href="mailto:Franck.Rousseau@imag.fr">Franck Rousseau</a>
  12. */
  13. public class EmployeeRecord extends UnicastRemoteObject
  14.                             implements PersonRecord {
  15.     private FileWriter fw;
  16.     /**
  17.      * Create an employee record.
  18.      * A file named "employee_list.txt" is used for storage.
  19.      * @exception RemoteException
  20.      */
  21.     public EmployeeRecord() throws RemoteException {
  22. // Ouverture de la base des employés, ici un fichier classique
  23. // Il faudrait vérifier plusieurs chose sur le fichier...
  24. try {
  25.     fw = new FileWriter("employee_list.txt", true);
  26. } catch (IOException e) {
  27.     System.err.println(e);
  28. }
  29.     }
  30.     /**
  31.      * Registers a person in the record
  32.      * @param p   the person to register
  33.      * @exception RemoteException
  34.      */
  35.     public void register(Person p) throws RemoteException {
  36.         try {
  37.             System.out.println("Getting info" );
  38.     // Supposons un long traitement
  39.     Thread.currentThread().sleep(3000);
  40.     fw.write(p.getString());
  41.     fw.write("\n" );
  42.     fw.flush();
  43.             System.out.println("Server got " + p.getString());
  44. } catch (Exception e) {
  45.             System.out.println("Server error: " + e.getMessage());
  46.             e.printStackTrace();
  47. }
  48.     }
  49.     /**
  50.      * The entry point to start the server.
  51.      * Expects a port number as single argument.
  52.      */
  53.     public static final void main(String[] args) {
  54.         if (args.length != 1) {
  55.             usage();
  56.         } else {
  57.             try {
  58.                 int port = Integer.parseInt(args[0]);
  59.                 System.out.println("Creating registry..." );
  60.                 Registry registry = LocateRegistry.createRegistry(port);
  61.                 String sn = "//" + InetAddress.getLocalHost().getHostName() +
  62.                             ":" + port + "/EmployeeRecord";
  63.                 System.out.println("Creating and binding server " + sn + "..." );
  64.                 Naming.rebind(sn, new EmployeeRecord());
  65.                 System.out.println("Server bound in registry" );
  66.             } catch (MalformedURLException e) {
  67.                System.err.println("Malformed URL: " + e.getMessage());
  68.                 e.printStackTrace();
  69.             } catch (java.net.UnknownHostException e) {
  70.                 System.err.println("Unknown host: " + e.getMessage());
  71.                 e.printStackTrace();
  72.             } catch (RemoteException e) {
  73.                 System.err.println("Remote exception: " + e.getMessage());
  74.                 e.printStackTrace();
  75.             } catch (Exception e) {
  76.                 usage();
  77.             }
  78.         }
  79.     }
  80.     private static void usage() {
  81.         System.err.println("usage: java EmployeeRecord <server port>" );
  82.     }


 
donc en gros, j'utilise un FileWriter pour ecrire sur un fichier distant apres ouverture du serveur (desole pr l'indentation :D)


Message édité par botman le 21-12-2002 à 12:21:25
Reply

Marsh Posté le 21-12-2002 à 12:24:58    

c'est une applet :o
 
note c'est possible hein mais bon ...

Reply

Marsh Posté le 21-12-2002 à 12:25:40    

DarkLord a écrit :

c'est une applet :o
 
note c'est possible hein mais bon ...

:o jsutement, mon code provient d'une applet :D
ca marchait pas trop mal pour ecrire sur un fichier distant


Message édité par botman le 21-12-2002 à 12:27:04
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed