• Aucun résultat trouvé

entrées-sorties (ES) qu'il est difficile de savoir lesquelles utiliser. De plus, il faut normalement créer et combiner 2 ou trois objets de ces classes pour faire quoi

N/A
N/A
Protected

Academic year: 2022

Partager "entrées-sorties (ES) qu'il est difficile de savoir lesquelles utiliser. De plus, il faut normalement créer et combiner 2 ou trois objets de ces classes pour faire quoi"

Copied!
1
0
0

Texte intégral

(1)

Avis de Jean Vaucher Professeur au DIRO Universite de Montreal Version 1.2 (jan 2000)

=====================

Fichiers en JAVA

=====================

(v 1.0: Fev. 1999 )

…. Java se retrouve avec 44 classes de base et l'usager doit créer et combiner 2 ou trois objets de ces classes pour ouvrir un fichier……

…. Un aspect surprenant des ES en Java est que certaines opérations qui sont très faciles a faire avec des langages plus vieux comme Pascal, Fortran, Basic et même C, sont impossible a réaliser simplement en Java.

En Java, il existe tellement de classes pour faire des

entrées-sorties (ES) qu'il est difficile de savoir lesquelles utiliser. De plus, il faut normalement créer et combiner 2 ou trois objets de ces classes pour faire quoi

que ce soit.

STREAMS

=======

Le Stream (flux en français) est le concept de base des entrées/sorties en Java. Un STREAM représente une suite d'octets qui sont accédés un a un. Il y a InputStream pour la lecture et OutputStream pour l'écriture.

. . .

(2)

Résumé « théorique » des fichiers (par Le Van N.)

Lecture d’un fichier texte :

classe Object

public

abstract

class java.io.

Reader

abstract void close() ; // Close the stream.

abstract int read(char[] cbuf, int off, int len) // Read characters into a portion of an array.

public class java.io.

InputStreamReadter extends Reader

public class java.io.

BufferedReader

extends Reader

un constructeur:

public BufferedReader(Reader in)

Create a buffering character-input stream that uses a default- sized input buffer.

Parameters: in - A Reader public void close()

throws IOException Close the stream.

Overrides: close in class Reader

Throws: IOException - If an I/O error occurs public String readLine()

throws IOException Read a line of text.

(3)

Création d’un fichier texte :

classe Object

public abstract class java.io. Writer extends Object

abstract

void close() ; // Close the stream, flushing it first.

abstract

void flush() ; // Flush the stream.

void write(char[] cbuf) ; // Write an array of characters.

etc …. etc ….

public class java.io.

OutputStreamWriter

extends Writer

public class java.io.

PrintWriter

extends Writer

un constructeur:

public PrintWriter(Writer out);

public void println(String x);

Print a String and then terminate the line.

public class java.io.

FileWriter

extends OutputStreamWriter

un des constructeurs :

public FileWriter(String fileName) throws IOException

… autres constructeurs + methodes …..

(4)

Quelques classes + interfaces utilisées pour la création d'un fichier binaire :

classe Object

OutputStream

FilterOutPutStream

public void

close();

FileOutputStream

public FileOutputStream String name);

etc . . .

DataOutput (une interface)

public abstract void writeInt(int valeur);

public abstract void writeChar(int v);

public abstract void writeDouble(double val);

etc . . .

DataOutputStream

public DataOutputStream(OutputStream os);

public final void writeInt(int valeur);

public final void writeChar(int v);

public final void writeDouble(double val);

etc . . .

public class java.io.DataOutputStream

extends java.io.FilterOutputStream

implements java.io.DataOutput

(5)

Quelques classes + interfaces utilisées pour la lecture d'un fichier binaire :

classe Object

InputStream

FilterInputStream

public void

close();

FileInputStream

public FileInputStream String name);

etc . . .

DataInput (une interface)

public abstract int readInt();

public abstract double readDouble();

etc . . .

DataInputStream

public DataInputStream(InputStream is);

public final int readInt();

public final double readDouble();

etc . . .

public class java.io.DataInputStream extends java.io.FilterInputStream implements java.io.DataInput

(DataInputStream est dérivée de FilterInputStream

et implémente l'interface DataInput)

(6)

Résumé technique : A) Fichier de type texte :

1) Création d’un fichier de type texte a) nommer le fichier :

PrintWriter aCreer = new PrintWriter( new FileWriter(nomACreer));

b) écrire son contenu (souvent dans une boucle)

aCreer.print (….) ; ou aCreer.println (….) ; c) fermer le fichier :

aCreer.close() ;

2) Lecture d’un fichier de type texte : on a fait beaucoup d’exemples ! B) Fichier binaire :

1) Création d’un fichier binaire a. Nommer le fichier :

DataOutputStream aCreer = new DataOutputStream

( new FileOutputStream(nom du fichier));

à adapter : le nom du fichier

b. Écrire son contenu (

très souvent dans une boucle

)

Dans une boucle (à 99% des cas) :

Combiner des écritures en mode binaire :

aCreer.writeInt(un entier);

aCreer.writeChar(un caractère);

etc . . .

c. Fermer le fichier : aCreer.close();

Références

Documents relatifs

Le point virgule permet d’écrire plusieurs instructions sur la même ligne,. Il supprime

Cette société établit des factures numérotées (en incrémentant partant de 1 et en réinitialisant à 1 le 1er janvier de chaque année) et datées, comprenant le

Quel sera le montant de ma pension de ma Retraite complémentaire.. Retournez sur

Comment la date de départ influe sur la pension de retraite.. Quelles sont les démarches

Comme dans le cas d’une méthode, si le code est très court, on peut directement mettre le constructeur dans la déclaration de la classe (définition en ligne). Exemple :

Point p2=p1 ; // constructeur de recopie : création de l’objet p2 // et son initialisation avec les données de p1.. Attention : il faut différencier entre recopie et

Vous devez à présent définir en langage C une structure listeInter et implanter deux fonc- tions initListeInter et retireVides qui remplissent les rôles respectifs du constructeur et

EL EFRIT, instituteur , Ksibet-El-Médioum