Lire ou écrire des caractères dans un fichier

Documents pareils
Flux de données Lecture/Ecriture Fichiers

Cours 14 Les fichiers

Entrées / Sorties. Entrées / Sorties. Entrées/Sorties. System.out. Fonctionnement par flots (stream) Karima Boudaoud IUT- R&T. Terrain connu.

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Gestion distribuée (par sockets) de banque en Java

Java Licence Professionnelle CISII,

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Programmation Objet Java Correction

COMPARAISONDESLANGAGESC, C++, JAVA ET

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

TD3: tableaux avancées, première classe et chaînes

TP, première séquence d exercices.

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

ACTIVITÉ DE PROGRAMMATION

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Programme Compte bancaire (code)

Premiers Pas en Programmation Objet : les Classes et les Objets

Synchro et Threads Java TM

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

PROGRAMMATION PAR OBJETS

TP1 : Initiation à Java et Eclipse

Programmation par les Objets en Java

Programmer en JAVA. par Tama

Programmation avec des objets : Cours 7. Menu du jour

Langage Java. Classe de première SI

Package Java.util Classe générique

Plan du cours. Historique du langage Nouveautés de Java 7

Environnements de développement (intégrés)

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

RMI le langage Java XII-1 JMF

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

Auto-évaluation Programmation en Java

Travaux Pratiques : Lucène - Gestion d un index plein texte

Programmation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.

Travaux pratiques. Compression en codage de Huffman Organisation d un projet de programmation

Design patterns. Design patterns - définition. Design patterns - avantages

Durée estimée :1 journée Date de la réalisation : Description Fournisseur Référence Nombre PU HT LM35CZ, LM35AZ LM35DZ

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Développement Logiciel

Licence Bio Informatique Année Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...

Corrigé des exercices sur les références

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Un ordonnanceur stupide

SHERLOCK 7. Version du 01/09/09 JAVASCRIPT 1.5

Projet gestion d'objets dupliqués

Solutions du chapitre 4

1 Lecture de fichiers

3IS - Système d'exploitation linux - Programmation système

LOG4430 : Architecture logicielle et conception avancée

Cours de Systèmes d Exploitation

Utilisation d objets : String et ArrayList

Dis papa, c est quoi un bus logiciel réparti?

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

Cours 1: Java et les objets

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Une introduction à Java

et se trouve popularisé rapidement pour ses possibilités de développement liés au Web. Les

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

Java DataBaseConnectivity

Le prototype de la fonction main()

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Tp 1 correction. Structures de données (IF2)

Dans le chapitre 1, nous associions aux fichiers ouverts des descripteurs de fichiers par lesquels nous accédions aux fichiers.

Généralités sur le Langage Java et éléments syntaxiques.

Chapitre 2. Classes et objets

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

Programmation Par Objets

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Introduction au langage C

Algorithmique et programmation : les bases (VBA) Corrigé

Programmation Réseau SSH et TLS (aka SSL)

Corrigés des premiers exercices sur les classes

TP1. Outils Java Eléments de correction

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Chapitre 10. Les interfaces Comparable et Comparator 1

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

1. Structure d'un programme FORTRAN 95

Cours Informatique Master STEP

GESTION DES FICHIERS C/UNIX

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

Programmation système de commandes en C

Projet de programmation (IK3) : TP n 1 Correction

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Aide mémoire UML & Java 1ère partie : Introduction. marc.lemaire@u-cergy.fr

Programmation Internet en Java

Programmation système en C/C++

2 e édition JAVA 5 et 6. Jérôme Bougeault. TSoft et Groupe Eyrolles, 2003, 2008, ISBN :

Programmation système I Les entrées/sorties

Examen Médian - 1 heure 30

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

Programmation Orientée Objet

INITIATION AU LANGAGE JAVA

Transcription:

Lire ou écrire des caractères dans un fichier La classe FileReader permet de lire des caractères dans un fichier. La classe FileWriter permet d'écrire des caractères dans un fichier. Le programme ci-dessous écrit une chaîne de caractères dans un fichier nommé copie_essai.txt puis copie le fichier essai.txt caractère par caractère dans le fichier copie_essai.txt. class LireEcrireTexte FileReader lecteur; FileWriter ecrivain; int c; lecteur = new FileReader("essai.txt"); ecrivain = new FileWriter("copie_essai.txt"); ecrivain.write("copie de essai.txt\n"); while((c = lecteur.read())!= -1) ecrivain.write(c); lecteur.close(); Si le fichier essai.txt contient : bonjour rebonjour le fichier copie_essai.txt contient après exécution : copie de essai.txt bonjour rebonjour Écrire dans un fichier texte On utilise ici une instance de PrintWriter, dont un constructeur prend en argument un Writer dont la classe BufferedWriter hérite. Vous pouvez utiliser avec une instance de PrintWriter les méthodes print et println de la même façon qu'avec System.out (qui est de la classe PrintStream). La classe PrintWriter (qui hérite de la classe Writer) ne fait qu'améliorer la classe PrintStream (qui hérite de OutStream).

On aurait pu plus simplement initialiser ecrivain par : ecrivain = new PrintWriter(new FileWriter(argv[0])); mais alors les écritures n'utiliseraient pas de mémoire-tampon. class EcrireFichierTexte PrintWriter ecrivain; int n = 5; ecrivain = new PrintWriter(new BufferedWriter (new FileWriter(argv[0]))); ecrivain.println("bonjour, comment cela va-t-il?"); ecrivain.println("un peu difficile?"); ecrivain.print("on peut mettre des entiers : "); ecrivain.println(n); ecrivain.print("on peut mettre des instances de Object : "); ecrivain.println(new Integer(36)); Apres execution, le fichier indiqué contient : bonjour, comment cela va-t-il? un peu difficile? On peut mettre des entiers 5 On peut mettre des instances de Object : 36 Lire un fichier de type texte ligne par ligne Premier exemple Il s'agit ici de lire un fichier de type texte ligne par ligne et de reproduire ce qui est lu directement à l'écran. On compose paour cela un BufferdReader avec un FileReader. Cet exemple est particulièrement simple. class LireLigne BufferedReader lecteuravecbuffer = null; String ligne;

try lecteuravecbuffer = new BufferedReader (new FileReader(argv[0])); catch(filenotfoundexception exc) System.out.println("Erreur d'ouverture"); while ((ligne = lecteuravecbuffer.readline())!= null) System.out.println(ligne); lecteuravecbuffer.close(); A l'exécution, on obtient en sortie exactement le contenu du fichier dont le nom est indiqué sur la ligne de commande. Vous pouvez récupérer ce programme Deuxième exemple Il s'agit maintenant de lire des entiers dans un fichier ne contenant que des entiers et d'en faire la somme. Les classes utilisées ici l'on déjà été dans les exemples précédents. class LireEntiers public static void main (String[] argv) throws IOException int somme = 0; FileReader fichier = new FileReader(argv[0]); StreamTokenizer entree = new StreamTokenizer(fichier); while(entree.nexttoken() == StreamTokenizer.TT_NUMBER) somme += (int)entree.nval; System.out.println("La somme vaut : " + somme); fichier.close(); Avec un fichier contenant : 5 3 6 2 7-10 23 on obtient : La somme vaut : 36

On se propose ici d'exploiter la classe java.io.file. Celle-ci permet de lister les fichiers d'un répertoire, de savoir si un fichier existe, de renommer un fichier, de supprimer un fichier... Une partie des méthodes de la classe java.io.file sont illustrées ci-dessous. Pour exécuter notre programme, on doit indiquer sur la ligne de commande le nom d'un répertoire. On indquera en fait le répertoire dans lequel s'exécute notre programme de façon à vérifier que le fichier qui sera créé au cours du programme figurera bien ensuite dans ce répertoire. class EssaiFile File repertoire; File fichier=null; File nouveaufichier; String[] listefichiers; PrintWriter ecrivain; repertoire=new File(argv[0]); if (!repertoire.isdirectory()) System.exit(0); fichier=new File("fichier.essai"); (fichier.exists()?" existe":" n'existe pas")); //en sortie : le fichier fichier.essai n'existe pas ecrivain=new PrintWriter(new FileOutputStream("fichier.essai")); ecrivain.println("bonjour"); (fichier.exists()?" existe":" n'existe pas")); //en sortie : le fichier fichier.essai existe System.out.println("Sa longueur est "+fichier.length()); //en sortie : Sa longueur est 8 System.out.println("Son chemin complet est \n "+fichier.getabsolutepath());; //en sortie : //Son chemin complet est // /inf/aquilon/infmd/charon/public_html/coursjava/fichiersetsaisies/fichi er.essai System.out.println(); listefichiers=repertoire.list(); for (int i=0;i < listefichiers.length;i++) System.out.println(listeFichiers[i]); System.out.println(); nouveaufichier=new File("autre.essai"); fichier.renameto(nouveaufichier);

(fichier.exists()?" existe":" n'existe plus")); //en sortie : le fichier fichier.essai n'existe plus System.out.println("le fichier "+nouveaufichier.getname()+ (nouveaufichier.exists()?" existe":" n'existe pas")); //en sortie : le fichier autre.essai existe nouveaufichier.delete(); A la sortie, on obtient, pour l'instruction java EssaiFile../fichiersEtSaisies/ : le fichier fichier.essai n'existe pas le fichier fichier.essai existe Sa longueur est 8 Son chemin complet est /inf/aquilon/infmd/charon/public_html/coursjava/fichiersetsaisies /fichier.essai fichier.essai EssaiFile.java file.html EssaiFile.class SaisieClavier.java SaisieFichier.java EssaiStream.java EssaiStreamBis.java LireFichierBinaire.java generalites.html EssaiWriter.java EssaiFileReader.java EssaiFileOutputStream.java lirefichierbinaire.html ecrirefichiertexte.html ecrirefichierbinaire.html saisirauclavier.html lirefichiertexte.html EcrireFichierBinaire.java EcrireFichierTexte.java le fichier fichier.essai n'existe plus le fichier autre.essai existe