| Dans cette fiche... |
| Difficulté :
|
Résultat |
| Une applet peut lire un fichier situé sur
son serveur. Voici un exemple dérivé de LireFichier,
avec quelques optimisations. Pour des raisons de compatibilité, la technique est orientée JDK 1.02. Lisez ceci pour plus de détails. D'autre part, cet exemple utilise aussi les tableaux. Lisez au moins la fiche Tableaux pour plus de détails. |
// -------------------------------------------------- // LECTURE DE FICHIERS EN JAVA // Version 'optimisée' // --------------------------------------------------
import java.applet.*; import java.awt.*; import java.net.*; import java.io.*;
public class LireFichier2 extends Applet
{
String NomFichier = "mois.txt";
String tablo[] = new String[12];
// Méthode appelée à l'initialisation de l'applet
public void init()
{
URL u;
DataInputStream dis;
String ligne;
int i;
// Définir la couleur de fond de l'applet setBackground(Color.black);
try
{
// Définir l'URL pointant sur le fichier
u = new URL(getDocumentBase(), NomFichier);
// Lire le flux d'entrée (InputStream) lié au fichier dis = new DataInputStream(u.openStream());
// Lire le fichier jusqu'à la fin
i = 0;
while ((ligne = dis.readLine())!= null)
tablo[i++] = ligne;
} catch(Exception e) {}
}
// Affichage
public void paint(Graphics g)
{
int i;
// Couleur du texte g.setColor(Color.white);
// Afficher les 12 mois (de 0 à 11) for(i = 0; i < 12; i++) g.drawString(tablo[i], 10, 10+i*10); } }
Les lignes non commentées ont déjà été traitées dans les exemples précédents.
dis = new DataInputStream(u.openStream()); |
| Par rapport à la fiche précédente, on crée directement le DataInputStream. Pour augmenter la vitesse de lecture, on pourrait compléter la ligne en utilisant un BufferedInputStream. La ligne ci-dessus deviendrait alors : dis = new DataInputStream(new BufferedInputStream(u.openStream())); |
while ((ligne = dis.readLine())!= null) |
| La boucle a été raccourcie (mais la lecture n'est pas forcément plus
simple !) : on fait la lecture de ligne et la comparaison à null en une
seule ligne. Attention aux parenthèses ! |
| tablo[i++] = ligne; |
| Le stockage de la ligne lue dans le tableau se fait en une seule étape. Ce qui équivaut à : tablo[i] = ligne; i++; A noter que l'incrémentation de la variable i se fait une fois que la ligne complète a été traitée. |
Voici le code qui a été utilisé dans cette page HTML pour faire apparaître l'applet :
<applet code="LireFichier2.class" width=250 height=90> Votre navigateur n'est pas compatible Java ! </applet>
Pour plus de précisions sur l'intégration d'une applet, cliquez ici.
| Cette section vous intéresse ? Abonnez-vous ! |
|