Les entrées et sorties en programmation Java

• Définitions
• Le paquetage java.io
– Utiliser java.io = utiliser/envelopper/wrapper successivement plusieurs classes
• Quelques classes
– Accès séquentiel: texte, formaté, sérialisation
– Accès direct

Définitions

– Un programme a souvent besoin d’importer de l’information depuis une source externe ou d’exporter une information vers une destination externe
– Cette information peut etre : dans un fichier, sur un disque, quelque part sur le réseau, en mémoire, dans un:
• Besoins
•Où?
autre programme
– Elle peut être de n’importe quel type : type de base, objects, caractères, image, sons…
•Quoi ?

Algorithmes de base

• Ecriture
– Ouvrir un flot
– Tant qu’il reste des infos à écrire
• Ecrire une information
– Fermer le flot
• Lecture
– Ouvrir un flot
– Tant qu’il reste des infos à lire
• Lire une information
– Fermer le flot
Un flot (ou flux ou stream en anglais) cache les détails de ce qui arrive aux données

Package Java.io

• Deux hiérarchies de classes « historiques »
Flots de caractères (Unicode 16 bits)
• 2 superclasses abstraites (implémentations partielles) à utiliser pour gérer du texte
• Légende
– Bleu = lecture et écriture de base
– Blanc = traitement en plus
Flots d’octets
• A utiliser pour des données binaires
(images, sons, objets)
Méthodes de Reader et InputStream
• Méthodes similaires mais pour différents types
• Reader (caractères)
– int read()
– int read(char cbuf[])
– int read(char cbuf[], int offset, int length)
• InputStream (octet)
– int read()
– int read(byte cbuf[])
– int read(byte cbuf[], int offset, int length)
• Méthodes pour marquer une position dans le flot, sauter une information, initialiser la position courante
• On utilise généralement plutôt les méthodes des sous-classes
Méthodes de Writer et OutputStream
• Méthodes similaires mais pour différents types
• Writer (caractères)
– int write(int c)
– int write(char cbuf[]) int write(char cbuf[], int offset, int length)
• OutputStream (octet)
– int write(int c)
– int write(byte cbuf[])
– int write(byte cbuf[], int offset, int length)
• Ouverture automatique à la création du flot
• Fermeture par l’appel à la méthode close() pour libérer des ressources système
Tester l’existence d’un fichier File

import java.io.*;
public class TestFile {
public static void main (String argv[]) {
File f = new File ("bonjour.txt");
if (f.exists())
System.out.println ("Le fichier bonjour.txt existe");
else
System.out.println ("Le fichier bonjour.txt n'existe pas");
}
}

Informations sur les fichiers  File

import java.io.*;
public class InfosFile {
public static void main (String argv[]) {
File f = new File ("Infos.txt");
if (f.exists()) {
System.out.println ("Informations sur le fichier Infos.txt");
System.out.println ("isFile : " + f.isFile());
System.out.println ("isDirectory : " + f.isDirectory());
System.out.println ("getAbsolutePath : " + f.getAbsolutePath());
System.out.println ("length : " + f.length());
System.out.println ("canRead : " + f.canRead());
System.out.println ("canWrite : " + f.canWrite());
}
}
}

Programmation Java les Entrées-Sorties

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *