0% ont trouvé ce document utile (0 vote)
25 vues33 pages

Cours Java Files

Transféré par

losus007
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
25 vues33 pages

Cours Java Files

Transféré par

losus007
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Java : les fichiers

Achref El Mouelhi

Docteur de l’université d’Aix-Marseille


Chercheur en Programmation par contrainte (IA)
Ingénieur en Génie logiciel

[email protected]

H & H: Research and Training 1 / 17


Plan

1 Introduction

2 Écriture

3 Lecture

H & H: Research and Training 2 / 17


Introduction

Les fichiers

Les fichiers
outil utilisé pour stocker et/ou échanger les données

I c

Pouvant être en écriture ou en lecture
ELH
U
L MO
f E
chre
c A

H & H: Research and Training 3 / 17


Introduction

Les fichiers

Les fichiers
outil utilisé pour stocker et/ou échanger les données

I c

Pouvant être en écriture ou en lecture
ELH
U
L MO
f E
re de fichiers en Java
h
3 étapes pour la manipulation
c
couAouverture
Création
Utilisation : écriture ou lecture
Fermeture

H & H: Research and Training 3 / 17


Écriture

Les fichiers

Deux étapes pour la création d’un fichier en Java

Création logique (déclaration d’un objet)


I c

ELH
Création physique (création sur le disque) ou ouverture si existant
U
L MO
f E
chre
c A

H & H: Research and Training 4 / 17


Écriture

Les fichiers

Deux étapes pour la création d’un fichier en Java

Création logique (déclaration d’un objet)


I c

ELH
Création physique (création sur le disque) ou ouverture si existant
U
L MO
f E
A c
Création logique hre
c
= new File("fichier.txt");
File file

Tous les imports de ce chapitre sont de java.io.*;

H & H: Research and Training 4 / 17


Écriture

Les fichiers

Pour créer le fichier physiquement, il faut préciser le type d’utilisation


lecture, ou
écriture
I c

ELH
U
L MO
f E
chre
c A

H & H: Research and Training 5 / 17


Écriture

Les fichiers

Pour créer le fichier physiquement, il faut préciser le type d’utilisation


lecture, ou
écriture
I c

ELH
U
L MO
f E
Création physique d’un fichier pour écriture
chre
c A
FileWriter fw = new FileWriter(file);

Remarque
Exécuter le projet puis aller vérifier la présence d’un fichier
fichier.txt dans le projet (Rafraichir le projet si le fichier n’apparaı̂t
pas)
H & H: Research and Training 5 / 17
Écriture

Les fichiers
On peut fusionner les deux étapes précédentes
FileWriter fw = new FileWriter("fichier.txt");

I c

ELH
U
L MO
f E
chre
c A

H & H: Research and Training 6 / 17


Écriture

Les fichiers
On peut fusionner les deux étapes précédentes
FileWriter fw = new FileWriter("fichier.txt");

I c
Remarque
EL H
U
Oètre booléen qui prend la
On peut aussi ajouter un deuxième param
L M
valeur
h r e fE
A
true : écrire àcla suite si le fichier existe
c
false (par défaut) : écraser le contenu précédent si le fichier
existe

H & H: Research and Training 6 / 17


Écriture

Les fichiers
On peut fusionner les deux étapes précédentes
FileWriter fw = new FileWriter("fichier.txt");

I c
Remarque
EL H
U
Oètre booléen qui prend la
On peut aussi ajouter un deuxième param
L M
valeur
h r e fE
A
true : écrire àcla suite si le fichier existe
c
false (par défaut) : écraser le contenu précédent si le fichier
existe

Exemple
FileWriter fw = new FileWriter("fichier.txt",true);
H & H: Research and Training 6 / 17
Écriture

Les fichiers
Pour écrire dans un fichier
// pour écrire une chaı̂ne de caractère
fw.write("Hello world");

// pour écrire un entier


I c

fw.write(86);
ELH
U
L
// pour écrire un caractèreMO
fw.write(’a’);
h r e fE
A c
c
fw.close();
// fermer le flux

H & H: Research and Training 7 / 17


Écriture

Les fichiers
Pour écrire dans un fichier
// pour écrire une chaı̂ne de caractère
fw.write("Hello world");

// pour écrire un entier


I c

fw.write(86);
ELH
U
L
// pour écrire un caractèreMO
fw.write(’a’);
h r e fE
A c
c
fw.close();
// fermer le flux

Allons vérifier ce qui a été écrit


Hello worldVa
H & H: Research and Training 7 / 17
Écriture

Les fichiers
Pour écrire dans un fichier
// pour écrire une chaı̂ne de caractère
fw.write("Hello world");

// pour écrire un entier


I c

fw.write(86);
ELH
U
L
// pour écrire un caractèreMO
fw.write(’a’);
h r e fE
A c
c
fw.close();
// fermer le flux

Allons vérifier ce qui a été écrit


Hello worldVa
H & H: Research and Training 7 / 17
Écriture

Les fichiers

Pour écrire à la ligne (mais ce n’est pas pratique)


fw.write("Hello world\n");
fw.write(’a’);
I c

fw.close();
ELH
U
MO
// fermer le flux

f E L
chre
c A

H & H: Research and Training 8 / 17


Écriture

Les fichiers

Pour écrire à la ligne (mais ce n’est pas pratique)


fw.write("Hello world\n");
fw.write(’a’);
I c

fw.close();
ELH
U
MO
// fermer le flux

f E L
chre
Contenu du fichierc A

Hello world
a

H & H: Research and Training 8 / 17


Écriture

Les fichiers

On peut aussi utiliser un objet de la classe BufferedWriter


BufferedWriter bw = new BufferedWriter(fw);

I c

ELH
U
L MO
f E
chre
c A

H & H: Research and Training 9 / 17


Écriture

Les fichiers

On peut aussi utiliser un objet de la classe BufferedWriter


BufferedWriter bw = new BufferedWriter(fw);

I c

ELH
Pour écrire U
L MO
bw.write("Hello world");
f E
bw.newLine();
chre
bw.write(87);
bw.newLine(); c A

bw.write(’a’);
bw.close();
// fermer le flux

H & H: Research and Training 9 / 17


Écriture

Les fichiers

BufferedWriter vs FileWriter
I c
H
ELcaractère par
U
FileWriter écrit directement dans le fichier
caractère
L MO
r
BufferedWriter écrite E un buffer puis envoie tout dans le
f dans
A
fichier quand on h
cappelle la méthode flush ou close
c

H & H: Research and Training 10 / 17


Lecture

Les fichiers

Création physique d’un fichier pour lecture


I c

FileReader fr = new FileReader(file);
ELH
U
L MO
f E
chre
c A

H & H: Research and Training 11 / 17


Lecture

Les fichiers

Création physique d’un fichier pour lecture


I c

FileReader fr = new FileReader(file);
ELH
U
L MO
f E
reles deux étapes de création
h
On peut aussi fusionner
c

FileReaderc frA= new FileReader("fichier.txt");

H & H: Research and Training 11 / 17


Lecture

Les fichiers
Pour lire un caractère d’un fichier
int str = fr.read();

I c

ELH
U
L MO
f E
chre
c A

H & H: Research and Training 12 / 17


Lecture

Les fichiers
Pour lire un caractère d’un fichier
int str = fr.read();

I c

Affichons ce qu’on a lu ELH
U
System.out.println(str);
L MO
f E
hre
// affiche le code ASCII du caractère lu
c
c A

H & H: Research and Training 12 / 17


Lecture

Les fichiers
Pour lire un caractère d’un fichier
int str = fr.read();

I c

Affichons ce qu’on a lu ELH
U
System.out.println(str);
L MO
f E
hre
// affiche le code ASCII du caractère lu
c
c A

Pour afficher le caractère associé au code ASCII lu
System.out.println((char)str);
// affiche le caractère lu

H & H: Research and Training 12 / 17


Lecture

Les fichiers
Pour lire et afficher tout le contenu du fichier
int str = fr.read();
while (str != -1) {
System.out.println((char)str);
I c

// affiche tous les caractères lus
ELH
U
MO
str = fr.read();
}
f E L
chre
c A

H & H: Research and Training 13 / 17


Lecture

Les fichiers
Pour lire et afficher tout le contenu du fichier
int str = fr.read();
while (str != -1) {
System.out.println((char)str);
I c

// affiche tous les caractères lus
ELH
U
MO
str = fr.read();
}
f E L
A c hre
c
Ou en plus simple
while ((str = fr.read()) != -1)
System.out.println(str);
// affiche tous les caractères lus

H & H: Research and Training 13 / 17


Lecture

Les fichiers
Remarque
Pour que l’on puisse lire le fichier ligne par ligne, il faut utiliser un autre
objet : BufferedReader

I c

ELH
U
L MO
f E
chre
c A

H & H: Research and Training 14 / 17


Lecture

Les fichiers
Remarque
Pour que l’on puisse lire le fichier ligne par ligne, il faut utiliser un autre
objet : BufferedReader

I c

EL H
U
Pour instancier BufferedReaderMO
f E L = new BufferedReader(
c h re
BufferedReader bufferedReader

c A
fr);

H & H: Research and Training 14 / 17


Lecture

Les fichiers
Remarque
Pour que l’on puisse lire le fichier ligne par ligne, il faut utiliser un autre
objet : BufferedReader

I c

EL H
U
Pour instancier BufferedReaderMO
f E L = new BufferedReader(
c h re
BufferedReader bufferedReader

c A
fr);

Pour lire et afficher une ligne
String string = bufferedReader.readLine();
System.out.println(string);
H & H: Research and Training 14 / 17
Lecture

Les fichiers

Pour lire et afficher toutes les lignes


String string = bufferedReader.readLine();
while (string != null) {
System.out.println(string); I c

string = bufferedReader.readLine(); ELH
U
}
L MO
f E
chre
c A

H & H: Research and Training 15 / 17


Lecture

Les fichiers

Pour lire et afficher toutes les lignes


String string = bufferedReader.readLine();
while (string != null) {
System.out.println(string); I c

string = bufferedReader.readLine(); ELH
U
}
L MO
f E
chre
Ou en plus simple c A

String string ;
while ((string = bufferedReader.readLine()) != null)
System.out.println(string);

H & H: Research and Training 15 / 17


Lecture

Les fichiers

c

On peut toujours lire caractère par caractère
I
int i = bufferedReader.read();
ELH
System.out.println(i); O U
// affiche le code ASCIIL M
r e fE
System.out.println((char)i);
h
A
// affiche le c
caractère lu
c

H & H: Research and Training 16 / 17


Lecture

Les fichiers

I c
Remarque
EL H
Quel que soit l’objet de lecture et/ouM
U
O utilisé, il faut penser à le
écriture
fermer après utilisation.
fE L
c h r e
c A

H & H: Research and Training 17 / 17

Vous aimerez peut-être aussi