Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LIRE FICHIER VIA UNE APPLET


Information sur la source

Catégorie :Applet Classé sous : fichier, file, getcodebase, url Niveau : Débutant Date de création : 03/03/2002 Date de mise à jour : 03/03/2002 12:39:04 Vu / téléchargé: 24 506 / 1 392

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

Cliquez pour voir la capture en taille normale
Exemple simple d'une applet pour lire un fichier sur le disque via une URL grave à getCodeBase
utilisation textare,  
 

Source

  • package affichefichier;
  • import java.awt.*;
  • import java.io.*;
  • import java.lang.*;
  • import javax.swing.*;
  • import javax.swing.text.*;
  • import java.awt.event.*;
  • import java.applet.*;
  • import java.io.InputStream ;
  • import java.io.DataInputStream ;
  • import java.net.URL ;
  • public class AfficheFichier extends java.applet.Applet {
  • boolean isStandalone = false;
  • JPanel jPanel1 = new JPanel();
  • JTextArea jTextArea1 = new JTextArea();
  • JButton jButton1 = new JButton();
  • JLabel jLabel1 = new JLabel();
  • JTextField jTextNomFichier = new JTextField();
  • JLabel jLabel2 = new JLabel();
  • private String message;
  • class LireFichier
  • {
  • private DataInputStream lecteur;
  • private String LigneLue;
  • private String FileName;
  • // Constructeur classe LireFichier-initialisation= ouverture fichier
  • LireFichier( String NomFichier) throws IOException {
  • FileName = NomFichier;
  • try{
  • // lecteur = new DataInputStream( new FileInputStream(FileName) );
  • // ---> cela génère une erreur type sécurité...
  • lecteur = new DataInputStream( (new URL( getCodeBase(), FileName )).openStream() ) ;
  • }
  • catch (IOException exc){
  • System.out.println(" probleme ouverture avec le fichier " + FileName);
  • }
  • }
  • String lire() throws IOException {
  • System.out.println("Lecture du fichier "+ FileName );
  • LigneLue = lecteur.readLine();
  • return LigneLue ;
  • }
  • void Fermer() throws IOException {
  • lecteur.close(); }
  • }
  • /**Construct the applet*/
  • public AfficheFichier() {
  • }
  • /**Initialize the applet*/
  • public void init() {
  • try {
  • jbInit();
  • }
  • catch(Exception e) {
  • e.printStackTrace();
  • }
  • }
  • /**Component initialization*/
  • private void jbInit() throws Exception {
  • this.setLayout(null);
  • jPanel1.setLayout(null);
  • jButton1.setText("Lecture du fichier...");
  • jButton1.setBounds(new Rectangle(17, 210, 134, 23));
  • jButton1.addActionListener(new java.awt.event.ActionListener() {
  • public void actionPerformed(ActionEvent e) {
  • jButton1_actionPerformed(e);
  • }
  • });
  • jLabel1.setText(" Nom fichier : ");
  • jLabel1.setBounds(new Rectangle(0, 172, 83, 30));
  • jTextNomFichier.setText("test.txt");
  • jTextNomFichier.setBounds(new Rectangle(78, 175, 138, 22));
  • jLabel2.setForeground(Color.red);
  • jLabel2.setText("...");
  • jLabel2.setBounds(new Rectangle(9, 409, 398, 17));
  • jPanel1.setMinimumSize(new Dimension(400, 500));
  • jPanel1.setPreferredSize(new Dimension(400, 500));
  • jPanel1.setBounds(new Rectangle(18, 6, 481, 426));
  • jTextArea1.setBounds(new Rectangle(6, 5, 237, 155));
  • this.add(jPanel1, null);
  • jPanel1.add(jTextArea1, null);
  • jPanel1.add(jLabel2, null);
  • jPanel1.add(jButton1, null);
  • jPanel1.add(jLabel1, null);
  • jPanel1.add(jTextNomFichier, null);
  • }
  • /**Start the applet*/
  • public void start() {}
  • /**Stop the applet*/
  • public void stop() {
  • }
  • /**Destroy the applet*/
  • public void destroy() {
  • }
  • /**Get Applet information*/
  • public String getAppletInfo() {
  • return "Applet Information";
  • }
  • /**Get parameter info*/
  • public String[][] getParameterInfo() {
  • return null;
  • }
  • /**Main method*/
  • public static void main(String[] args) {
  • AfficheFichier applet = new AfficheFichier();
  • applet.isStandalone = true;
  • Frame frame;
  • frame = new Frame() {
  • protected void processWindowEvent(WindowEvent e) {
  • super.processWindowEvent(e);
  • if (e.getID() == WindowEvent.WINDOW_CLOSING) {
  • System.exit(0);
  • }
  • }
  • public synchronized void setTitle(String title) {
  • super.setTitle(title);
  • enableEvents(AWTEvent.WINDOW_EVENT_MASK);
  • }
  • };
  • frame.setTitle("test Applet");
  • frame.add(applet, BorderLayout.CENTER);
  • applet.init();
  • applet.start();
  • frame.setSize(400,500);
  • frame.setVisible(true);
  • }
  • public void jButton1_actionPerformed(ActionEvent e) {
  • //On charge le contenu d'un fichier
  • try{
  • jLabel2.setText("Lecture du fichier en cours, veuillez patienter....");
  • rafraichir();
  • actionLire();
  • }
  • catch(IOException exc){ jLabel2.setText("...problème avec lecture fichier...");}
  • }
  • public void actionLire() throws IOException {
  • int index = 0;
  • LireFichier lecture = new LireFichier(jTextNomFichier.getText());
  • jTextArea1.setText("");
  • while (( message = lecture.lire())!= null){
  • index++;
  • jTextArea1.append(message+ "\n" );
  • }
  • lecture.Fermer();
  • rafraichir();}
  • public void afficherErrIO(){
  • jLabel2.setText("probleme utilisation IO");
  • rafraichir();}
  • public void rafraichir(){
  • this.repaint();
  • this.show(); }
  • }
package affichefichier;
import java.awt.*;
import java.io.*;
import java.lang.*;
import javax.swing.*;
import javax.swing.text.*;
import java.awt.event.*;
import java.applet.*;

import java.io.InputStream ;
import java.io.DataInputStream ;
import java.net.URL ;


public class AfficheFichier extends java.applet.Applet {
  boolean isStandalone = false;
  JPanel jPanel1 = new JPanel();
  JTextArea jTextArea1 = new JTextArea();
  JButton jButton1 = new JButton();
  JLabel jLabel1 = new JLabel();
  JTextField jTextNomFichier = new JTextField();
  JLabel jLabel2 = new JLabel();
  private String message;

 class LireFichier
 {
  private DataInputStream lecteur;
  private String LigneLue;
  private String FileName;


    // Constructeur classe LireFichier-initialisation= ouverture fichier
  LireFichier( String NomFichier) throws IOException {
           FileName = NomFichier;
	   try{
//	       lecteur = new DataInputStream( new FileInputStream(FileName) );
//          ---> cela génère une erreur type sécurité...
                lecteur = new DataInputStream( (new URL( getCodeBase(), FileName )).openStream() ) ;
	     }
	   catch (IOException exc){
	       System.out.println(" probleme ouverture avec le fichier " + FileName);
	   }
  }


  String lire() throws IOException {
    System.out.println("Lecture du fichier "+ FileName );
    LigneLue = lecteur.readLine();
    return LigneLue ;
    }

  void Fermer() throws IOException {
      lecteur.close(); }

 }


  /**Construct the applet*/
  public AfficheFichier() {
  }
  /**Initialize the applet*/
  public void init() {
    try {
      jbInit();
    }
    catch(Exception e) {
      e.printStackTrace();
    }
  }
  /**Component initialization*/
  private void jbInit() throws Exception {
    this.setLayout(null);
    jPanel1.setLayout(null);
    jButton1.setText("Lecture du fichier...");
    jButton1.setBounds(new Rectangle(17, 210, 134, 23));
    jButton1.addActionListener(new java.awt.event.ActionListener() {
      public void actionPerformed(ActionEvent e) {
        jButton1_actionPerformed(e);
      }
    });
    jLabel1.setText("  Nom fichier : ");
    jLabel1.setBounds(new Rectangle(0, 172, 83, 30));
    jTextNomFichier.setText("test.txt");
    jTextNomFichier.setBounds(new Rectangle(78, 175, 138, 22));
    jLabel2.setForeground(Color.red);
    jLabel2.setText("...");
    jLabel2.setBounds(new Rectangle(9, 409, 398, 17));
    jPanel1.setMinimumSize(new Dimension(400, 500));
    jPanel1.setPreferredSize(new Dimension(400, 500));
    jPanel1.setBounds(new Rectangle(18, 6, 481, 426));
    jTextArea1.setBounds(new Rectangle(6, 5, 237, 155));
    this.add(jPanel1, null);
    jPanel1.add(jTextArea1, null);
    jPanel1.add(jLabel2, null);
    jPanel1.add(jButton1, null);
    jPanel1.add(jLabel1, null);
    jPanel1.add(jTextNomFichier, null);
  }
  /**Start the applet*/
  public void start() {}

  /**Stop the applet*/
  public void stop() {
  }
  /**Destroy the applet*/
  public void destroy() {
  }
  /**Get Applet information*/
  public String getAppletInfo() {
    return "Applet Information";
  }
  /**Get parameter info*/
  public String[][] getParameterInfo() {
    return null;
  }
  /**Main method*/
  public static void main(String[] args) {
    AfficheFichier applet = new AfficheFichier();
    applet.isStandalone = true;
    Frame frame;
    frame = new Frame() {
      protected void processWindowEvent(WindowEvent e) {
        super.processWindowEvent(e);
        if (e.getID() == WindowEvent.WINDOW_CLOSING) {
          System.exit(0);
        }
      }
      public synchronized void setTitle(String title) {
        super.setTitle(title);
        enableEvents(AWTEvent.WINDOW_EVENT_MASK);
      }
    };
    frame.setTitle("test Applet");
    frame.add(applet, BorderLayout.CENTER);
    applet.init();
    applet.start();
    frame.setSize(400,500);
    frame.setVisible(true);
  }

  public void jButton1_actionPerformed(ActionEvent e) {
              //On charge le contenu d'un fichier
              try{
                  jLabel2.setText("Lecture du fichier en cours, veuillez patienter....");
                  rafraichir();
                  actionLire();
                  }
                  catch(IOException exc){ jLabel2.setText("...problème avec lecture fichier...");}
              }

  public void actionLire() throws IOException {
      int index = 0;
      LireFichier lecture = new LireFichier(jTextNomFichier.getText());
      jTextArea1.setText("");
      while (( message = lecture.lire())!= null){
                    index++;
                    jTextArea1.append(message+ "\n" );
                    }
      lecture.Fermer();
      rafraichir();}

  public void afficherErrIO(){
      jLabel2.setText("probleme utilisation IO");
      rafraichir();}

  public void rafraichir(){
        this.repaint();
        this.show();  }


} 

Conclusion

Ici, il faudra ranger le HTML qui appelera AppelleFichier via le code exemple ci-joint :


<html>
<head>
<title>
HTML Test Page
</title>
</head>
<body>
Affichage de l' application lecture d'un fichier à partir d'une applet.<br>
<applet
  codebase = "."
  code     = "affichefichier.AfficheFichier.class"
  name     = "TestApplet"
  width    = "600"
  height   = "500"
  hspace   = "0"
  vspace   = "0"
  align    = "top"
>
</applet>
</body>
</html>


Il faudra avoir un fichier test.txt avec du blabla ASCII dedans, exemple....


Coucou, ceci est un test
maintenant on a la ligne2
la ligne 3
la ligne 5, euh, non 4
oui, c' est la 5



-----------fin du fichier exemple ............


L' exemple a été fait sous JBuilder5, le source zip comporte le fichier projet jpx





 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  •   Sources Java
    •   affichefichier
      • AfficheFichier$1.classTélécharger ce fichier [Réservé aux membres club]738 octets
      • AfficheFichier$2.classTélécharger ce fichier [Réservé aux membres club]868 octets
      • AfficheFichier$LireFichier.classTélécharger ce fichier [Réservé aux membres club]1 729 octets
      • AfficheFichier.classTélécharger ce fichier [Réservé aux membres club]4 764 octets
      • AfficheFichier.javaTélécharger ce fichier [Réservé aux membres club]Voir ce fichier5 024 octets
      • AfficheFichier.java~37~Télécharger ce fichier [Réservé aux membres club]5 094 octets
      • AfficheFichier.java~38~Télécharger ce fichier [Réservé aux membres club]5 157 octets
      • AfficheFichier.java~39~Télécharger ce fichier [Réservé aux membres club]5 173 octets
      • AfficheFichier.java~40~Télécharger ce fichier [Réservé aux membres club]5 167 octets
      • AfficheFichier.java~41~Télécharger ce fichier [Réservé aux membres club]5 173 octets
      • test.txtTélécharger ce fichier [Réservé aux membres club]Voir ce fichier105 octets
    •   dependency cache
      • affichefichier.dependencyTélécharger ce fichier [Réservé aux membres club]3 320 octets
      • UnnamedPackage.dependencyTélécharger ce fichier [Réservé aux membres club]5 708 octets
    • AfficheFichier$1.classTélécharger ce fichier [Réservé aux membres club]663 octets
    • AfficheFichier$2.classTélécharger ce fichier [Réservé aux membres club]838 octets
    • AfficheFichier.classTélécharger ce fichier [Réservé aux membres club]5 071 octets
    • AfficheFichier.htmlTélécharger ce fichier [Réservé aux membres club]Voir ce fichier379 octets
    • AfficheFichier.html~1~Télécharger ce fichier [Réservé aux membres club]382 octets
    • AfficheFichier.html~2~Télécharger ce fichier [Réservé aux membres club]382 octets
    • AfficheFichier.html~3~Télécharger ce fichier [Réservé aux membres club]382 octets
    • LireFichier.classTélécharger ce fichier [Réservé aux membres club]1 393 octets
    • test.txtTélécharger ce fichier [Réservé aux membres club]Voir ce fichier105 octets
  • AfficheFichier.htmlTélécharger ce fichier [Réservé aux membres club]Voir ce fichier533 octets
  • AfficheFichier.jpxTélécharger ce fichier [Réservé aux membres club]2 632 octets
  • AfficheFichier.jpx.localTélécharger ce fichier [Réservé aux membres club]1 100 octets
  • AfficheFichier.jpx.local~Télécharger ce fichier [Réservé aux membres club]1 027 octets
  • AfficheFichier.jpx~Télécharger ce fichier [Réservé aux membres club]2 242 octets
  • test.txtTélécharger ce fichier [Réservé aux membres club]Voir ce fichier105 octets

Télécharger le zip

Commentaires et avis

signaler à un administrateur
Commentaire de muad-dib le 06/03/2002 23:25:49

il me dit que la méthode DataInputStream.readLine a été "Deprecated" et qu'il fallait utiliser la classe BufferedReader ....

signaler à un administrateur
Commentaire de muad-dib le 06/03/2002 23:26:41

BufferedReader qui elle génère une erreur de sécurité .. alor comment faire??

signaler à un administrateur
Commentaire de Niko2012 le 27/11/2002 05:10:21

hahaha on reconnait bien le code jBuilder... tu aurais pu arranger et nettoyer tout ca...

signaler à un administrateur
Commentaire de matthieuauchan le 20/05/2003 12:06:08

Je voudrais savoir si à partir d'une URL il était possible de télécharger un fichier ... J'ai essayé avec un DataInputStream mais les résultats ne sont pas convaincants : les données sont altérées.
Matthieu ... Merci et Java Pawa !!!

signaler à un administrateur
Commentaire de guemou le 29/10/2003 16:00:20

moi je n'ai pas d'autre commentaire mais je suis en train de travailler sur une microthèse dont le sujet est téledaiagnostic donc ma tache est de faire communiquer un applet java et matlab(client -serveur).Je demande  si vous  connaissiez  un moyen de les faire communiquer,merci de toute information

signaler à un administrateur
Commentaire de tULIPOs le 11/10/2006 06:54:37

salut
je tiens à averir tout le monde qu'une applet ne peut pas acceder au disque dur du client , c impossible et ceci pour des raison de sécurité , le but unique d'utiliser une applet et le besoin de l'api awt , pour une JApplet celui de swing , alors ca ne sert a rien de développer une applet qui lit un fichier car il faut que vous sachier tous que l'applet s'execute coté client, donc en fin de compte elle ne lira ni fichier ni roman .

alors svp arreter de faire des choses qui ne serve à rien

signaler à un administrateur
Commentaire de Alpha_cafe le 07/03/2007 18:50:52

salut
je suis d'accord avec toi tULIPOs pour la lecture d'un fichier à partir d'une applet, mais pour activé cette option il faut signer l'applet c-à-d executer cette commande sous console : keytool  -genkey -alias signeApplet -validity 365
aprés remplir les infos; et enfin jarsigner VotreApplet.jar signerApplet, et vous pouvez faire une lecture d'un fichier à partir d'une applet

signaler à un administrateur
Commentaire de tULIPOs le 21/03/2007 22:55:19

je sais qu'il y a moyen de contourner la contrainte de sécurité sur les applets (y en a plusieurs en faite), mais le pb est qu'il faut configurer tous les clients pour que l'applet lit le fichier.
c'est pas du tout bon ça.
pour lire un fichier il suffira de faire une mini appli web, qui upload le fichier sur le serveur, le lit puis le jette , je pense que c mieux .

signaler à un administrateur
Commentaire de arby le 06/05/2007 15:15:27

salut a tous, je suis en fait debutant a la nouvelle technologie j2ee en pratique,mt je veux que vous m'aidiez par une simple explication concernant cette tech et me dirriger vers l'essentiel a apprendre et les outils indispensable avec des exemples claires

merci, A+
ma3loumvine@yahoo.fr

signaler à un administrateur
Commentaire de Mizuka le 27/12/2007 01:23:54

Bonjour :)

Cette astuce peut être appliquée facilement pour faire la même chose sur un serveur FTP ?
J'suppose qu'on peut faire une restriction des dossiers qu'on ne veut pas afficher ? Et concernant les fichiers / dossiers cachés, comment cela se passe-t-il ?

J'ai pas regardé le code, mais j'voulais relancer :)

Merci

Miz.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Récupérer un fichier grâce File(uri) [ par bibijosh ] Bonjour,Voilà, j'aimerais pouvoir récupérer un fichier situé sur un serveur grâce à son url.Voilà un bout de code que j'utilise:[QUOTE]        url = n Transmettre fichier en POST à une URL [ par flolag ] Salut,J'ai une applet JAVA et je souhaiterais transmettre en HTTP POST un fichier pour ensuite le récupèrer avec une page Asp pour l'écrire sur le ser Aide débutant ! [ par zut69 ] Bonjour,J'ai réussi à intégrer dans mon applet le code qui suit. Cependant, est-ce que quelqu'un pourrait m'eclaircir sur la façon dont il fonctionne? J2ee Struts fichier [ par zarmas42 ] Bonjour,Dans le cadre d'un projet J2EE, je dois ouvrir un fichier qui est sur le serveur en java.Comment récupérer l'adresse complète de l'emplacement Fichier JAVA en lecture [ par BODJI ] Bjr je dispose d'un fichier dont je lis le contenu quand je rentre son nom entre guillemet. Il s'exécute sous eclipse. File fichier_a_entrer = new Fi comment recuperer le contenu d'un fichier sur le net [ par byob ] Bonjour,j'ai regarder de nombreux post sur le sujet pour m'en inspirer mais je n'arrive pas à qqc de concret.Ce que j'aimerais faire : lire les 128 pr ouverture/lecture/stocage fichier XLS [ par Impossibeulman ] Bonjours,Je cherche a Ouvrir un fichier xls avec une OpenDialog , qui me permet de savoir ou se trouve le fichier a exploiter.(exemple c:/toto/tata/le Transfer de fichier [ par darko666 ] Salut tous le monde, je devloppe une application web avce jsp et servelet, une de mes page est destiner à envoyer 2 fichier sur mon serveur apres que Convertier un fichier BITMAP en JPEG [ par SLaYerS ] Voila je recherche, un code, un algorithme, un ActiveX enfin quelque chose qui pourrait m'aider pour pouvoir convertir un fichier bmp en jpg.Merci d'a StringTokenizer et adresse url [ par RustyNail ] Voila mon probleme:J'ai une adresse url comme ceci : http//www.zearez/.../.../fichier.mp3Et je voudrais juste récupérer le nom du fichier fichier.mp3


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,359 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.