TUTORIELS 
Java : afficher un fichier texte

Page 1 | 2

Seconde partie de notre série "coup de pouce" pour les débutants Java, ici en abordant les flux E/S.
 (25 février 2004)
 
Forums
* Discutez en sur les forums
Après avoir créé une interface graphique simple dans notre article "Java : fenêtre et bouton", nous allons maintenant reprendre le code de cet exercice précédent, ajouter un champ texte dans notre interface, et faire en sorte que le clic sur le bouton ne ferme plus le programme, mais charge un fichier texte au sein du champ. Cela nous permettra d'avoir un premier aperçu des flux d'entrée/sortie (E/S).


Les flux d'entrées/sorties
Les flux E/S sont le moyen de communication du programme avec l'extérieur (l'utilisateur, la machine, le réseau...), et de fait sont un élément fondamental de sa conception. Ils sont gérés principalement par l'ensemble des classes se trouvant dans le paquetage java.io.* (I/O pour input/output) : ces classes sont nombreuses (une soixantaine) et très diverses, chacune répondant à un besoin ou une tâche précis. C'est d'ailleurs potentiellement une cause d'erreur, tant le choix de "la classe idéale" peut sembler ardu.

Les flux touchent donc à toute la communication en entrée (lecture de fichier, réception des touches du clavier...) et en sortie (écriture de fichier, affichage à l'écran, impression...).

Ces flux peuvent être de deux types : flux binaires (sous forme d'une chaîne d'octets) ou flux de caractère (une chaîne de caractère : du texte). La principale différence à connaître pour l'heure est que les flux binaires ne sont pas transformés lors d'une entrée/sortie, tandis que les flux de caractères sont intelligemment gérés et transformés. Nous n'irons pas plus loin à ce propos ici, sachez simplement que pour la lecture d'un fichier texte, il est préférable de passer par un type de flux "caractère".

Mise en application
Nous allons donc "simplement" reprendre le code de notre article précédent, "FenetreSimpleExec.java", et y ajouter les modifications qui rendront notre programme capable de lire le fichier. Ligne à ligne, nous expliquerons les nouveautés...

Tout d'abord, il nous faut bien entendu déclarer que nous allons utiliser des classes du paquetage I/O. Nous ajoutons donc la ligne suivante en début de fichier :

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

Les deux classes principales restent les mêmes :

public class FenetreSimpleExec
  {
  public static void main(String[] args)
    {
    FenetreSimple fenetre = new FenetreSimple();
    fenetre.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    fenetre.show();
    }
  }

class FenetreSimple extends JFrame
  {
  public FenetreSimple()
    {
    Toolkit k = Toolkit.getDefaultToolkit();
    Dimension tailleEcran = k.getScreenSize();
    int largeurEcran = tailleEcran.width;
    int hauteurEcran = tailleEcran.height;

    setTitle("Un programme Java");
    setSize(largeurEcran/4, hauteurEcran/4);
    setLocation(largeurEcran*3/8, hauteurEcran*3/8);

    Contenu monContenu = new Contenu(this);
    Container leContenant = getContentPane();
    leContenant.add(monContenu);
    }
  }

Nous avons en effet toujours besoin de créer une fenêtre JFrame dans laquelle nous afficherons notre contenu.
C'est d'ailleurs notre classe Contenu qui reçoit l'ensemble des modifications, comme nous allons le voir à la page suivante...

Page 1 | 2


 
[ Xavier BorderieJDNet
 
Accueil | Haut de page