Académique Documents
Professionnel Documents
Culture Documents
Anglais Français
Java-Fichiers et E/S
Le package java.io contient presque toutes les classes dont vous pourriez avoir
besoin pour effectuer des entrées et des sorties (E/S) en Java. Tous ces flux
représentent une source d’entrée et une destination de sortie. Le flux du package
java.io prend en charge de nombreuses données telles que des primitives, des
objets, des caractères localisés, etc.
Flux
Un flux peut être défini comme une séquence de données. Il existe deux types de
flux -
InPutStream - Le InputStream est utilisé pour lire les données d'une source.
Java fournit une prise en charge solide mais flexible des E/S liés aux fichiers et aux
réseaux, mais ce didacticiel couvre les fonctionnalités très basiques liées aux flux et
aux E/S. Nous verrons les exemples les plus utilisées un par un -
Flux d'octets
Les flux d'octets Java sont utilisés pour effectuer l'entrée et la sortie d'octets de 8
bits. Bien qu'il existe de nombreuses classes liées aux flux d'octets, les classes les
plus fréquemment utilisées sont FileInputStream et FileOutputStream . Voici un
exemple qui utilise ces deux classes pour copier un fichier d'entrée dans un fichier
de sortie -
Exemple
https://www-tutorialspoint-com.translate.goog/java/java_files_io.htm?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=fr&_x_tr_pto=sc 1/10
26/12/2023 07:03 Java - Fichiers et E/S
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
try {
in = new FileInputStream("input.txt");
out = new FileOutputStream("output.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
}finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}
$javac CopyFile.java
$java CopyFile
https://www-tutorialspoint-com.translate.goog/java/java_files_io.htm?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=fr&_x_tr_pto=sc 2/10
26/12/2023 07:03 Java - Fichiers et E/S
Flux de personnages
Les flux Java Byte sont utilisés pour effectuer l'entrée et la sortie d'octets de 8 bits,
tandis que les flux Java Character sont utilisés pour effectuer l'entrée et la sortie
pour l'Unicode 16 bits. Bien qu'il existe de nombreuses classes liées aux flux de
caractères, les classes les plus fréquemment utilisées sont FileReader et
FileWriter . Bien qu'en interne, FileReader utilise FileInputStream et FileWriter
utilise FileOutputStream, mais ici la différence majeure est que FileReader lit deux
octets à la fois et FileWriter écrit deux octets à la fois.
Nous pouvons réécrire l'exemple ci-dessus, qui utilise ces deux classes pour copier
un fichier d'entrée (ayant des caractères Unicode) dans un fichier de sortie -
Exemple
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
try {
in = new FileReader("input.txt");
out = new FileWriter("output.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
}finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
https://www-tutorialspoint-com.translate.goog/java/java_files_io.htm?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=fr&_x_tr_pto=sc 3/10
26/12/2023 07:03 Java - Fichiers et E/S
}
}
$javac CopyFile.java
$java CopyFile
Normes de flux
Tous les langages de programmation prennent en charge les standards E/S dans
lesquels le programme de l'utilisateur peut saisir les entrées d'un clavier et ensuite
produire une sortie sur l'écran de l'ordinateur. Si vous connaissez les langages de
programmation C ou C++, vous devez connaître trois périphériques standards
STDIN, STDOUT et STDERR. De même, Java fournit les trois flux standards suivants
-
Standard Output - Ceci est utilisé pour sortir les données produites par le
programme de l'utilisateur et généralement un écran d'ordinateur est utilisé
pour le flux de sortie standard et représenté par System.out .
Standard Error - Ceci est utilisé pour générer les données d'erreur produites
par le programme de l'utilisateur et généralement un écran d'ordinateur est
utilisé pour le flux d'erreurs standard et représenté par System.err .
Voici un programme simple, qui crée InputStreamReader pour lire le flux d'entrée
standard jusqu'à ce que l'utilisateur tape un "q" -
Exemple
https://www-tutorialspoint-com.translate.goog/java/java_files_io.htm?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=fr&_x_tr_pto=sc 4/10
26/12/2023 07:03 Java - Fichiers et E/S
import java.io.InputStreamReader;
try {
cin = new InputStreamReader(System.in);
System.out.println("Enter characters, 'q' to quit.");
char c;
do {
c = (char) cin.read();
System.out.print(c);
} while(c != 'q');
}finally {
if (cin != null) {
cin.close();
}
}
}
}
$javac ReadConsole.java
$java ReadConsole
Enter characters, 'q' to quit.
1
1
e
e
q
q
https://www-tutorialspoint-com.translate.goog/java/java_files_io.htm?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=fr&_x_tr_pto=sc 5/10
26/12/2023 07:03 Java - Fichiers et E/S
Comme décrit précédemment, un flux peut être défini comme une séquence de
données. Le InputStream est utilisé pour lire les données d'une source et le
OutputStream est utilisé pour écrire des données vers une destination.
Voici une hiérarchie de classes pour gérer les flux d'entrée et de sortie.
FichierInputStream
Ce flux est utilisé pour lire les données des fichiers. Les objets peuvent être créés à
l'aide du mot-clé nouveau et plusieurs types de constructeurs sont disponibles.
Le constructeur suivant prend un nom de fichier sous forme de chaîne pour créer un
objet de flux d'entrée pour lire le fichier -
Le constructeur suivant prend un objet fichier pour créer un objet de flux d'entrée
pour lire le fichier. Nous créons d'abord un fichier objet en utilisant la méthode File()
comme suit -
https://www-tutorialspoint-com.translate.goog/java/java_files_io.htm?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=fr&_x_tr_pto=sc 6/10
26/12/2023 07:03 Java - Fichiers et E/S
Une fois que vous avez l'objet InputStream en main, vous trouverez une liste de
méthodes d'assistance qui peuvent être utilisées pour lire le flux ou pour effectuer
d'autres opérations sur le flux.
FichierOutputStream
FileOutputStream est utilisé pour créer un fichier et y écrire des données. Le flux
créerait un fichier, s'il n'existe pas déjà, avant de l'ouvrir pour la sortie.
Voici deux constructeurs qui peuvent être utilisés pour créer un objet
FileOutputStream.
Le constructeur suivant prend un nom de fichier sous forme de chaîne pour créer un
objet de flux d'entrée pour écrire le fichier -
Le constructeur suivant prend un objet fichier pour créer un objet de flux de sortie
pour écrire le fichier. Tout d'abord, nous créons un fichier objet en utilisant la
méthode File() comme suit -
Une fois que vous avez l'objet OutputStream en main, vous trouverez une liste de
méthodes d'assistance qui peuvent être utilisées pour écrire dans le flux ou pour
effectuer d'autres opérations sur le flux.
Exemple
import java.io.OutputStream;
try {
byte bWrite [] = {11,21,3,40,5};
OutputStream os = new FileOutputStream("test.txt");
for(int x = 0; x < bWrite.length ; x++) {
os.write( bWrite[x] ); // writes the bytes
https://www-tutorialspoint-com.translate.goog/java/java_files_io.htm?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=fr&_x_tr_pto=sc 7/10
26/12/2023 07:03 Java - Fichiers et E/S
}
os.close();
Le code ci-dessus créerait le fichier test.txt et écrirait les nombres donnés au format
binaire. Il en serait de même pour la sortie sur l'écran de la sortie standard.
Répertoires en Java
Un répertoire est un fichier qui peut contenir une liste d'autres fichiers et
répertoires. Vous utilisez l'objet File pour créer des répertoires, pour répertorier les
fichiers disponibles dans un répertoire. Pour plus de détails, consultez une liste de
toutes les méthodes que vous pouvez appeler sur l'objet File et celles liées aux
répertoires.
Création de répertoires
Il existe deux méthodes utilitaires de fichiers utiles , qui peuvent être utilisées pour
créer des répertoires -
https://www-tutorialspoint-com.translate.goog/java/java_files_io.htm?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=fr&_x_tr_pto=sc 8/10
26/12/2023 07:03 Java - Fichiers et E/S
Exemple
import java.io.File;
Répertoires de listes
Vous pouvez utiliser la méthode list () fournie par l'objet File pour répertorier tous
les fichiers et répertoires disponibles dans un répertoire comme suit -
Exemple
import java.io.File;
try {
// create new file object
file = new File("/tmp");
https://www-tutorialspoint-com.translate.goog/java/java_files_io.htm?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=fr&_x_tr_pto=sc 9/10
26/12/2023 07:03 Java - Fichiers et E/S
paths = file.list();
Cela reproduit le résultat suivant basé sur les répertoires et fichiers disponibles dans
votre répertoire /tmp -
Sortir
test1.txt
test2.txt
ReadDir.java
ReadDir.class
https://www-tutorialspoint-com.translate.goog/java/java_files_io.htm?_x_tr_sl=en&_x_tr_tl=fr&_x_tr_hl=fr&_x_tr_pto=sc 10/10