Created by Pacifique Mugwaneza
over 8 years ago
|
||
Question | Answer |
Que fait la classe File | File -encapsule l'accès aux information caractérisant un fichier ou un repertoire -son constructeur est un String(chemin d'accès complet ou relatif au dossier ou fichier) -il retourne un handle |
Que est l'utilité de file? | - offre des méthodes pour créer, renommer ou supprimer un fichier ou un répertoire ou encore pour modifier leurs attributs. |
Que sont les flux? | la plupart des opérations d’entrées / sorties se font via des flux, - lecture clavier - affichage à l’écran, -lecture dans un fichier -l’envoi de données vers une machine distante |
Les 4 classe abstraites des flux ? | — InputStream, — OuputStream, — Reader — Writer |
Quelle difference entre les classe de flux? | les flux dérivés de InputStream ou Reader sont des flux en entrée, ceux héritant de OuputStream ou Writer sont quant à eux des flux en sortie. |
Qu'on tout les flux en commum? | close(), tous séquentiel |
Qu'offrent les classe en sorties? | Les flux en sortie fournissent la méthode flush() . Elle force le vidage dans le flux d’un tampon en écriture. /!\Remarquez qu’il n’est pas garanti que la méthode close() d’un flux en sortie appelle flush(). |
Qu'offrent les flux binaires en entrée et comment ça fonctionne? | Toute classe dérivant de la classe InputStream doit implémenter la méthode read(). Celle-ci retourne un int dont l’octet de poids faible code l’octet lu dans le flux. Si la fin du fichier est atteinte, la valeur −1 est retournée. Cette méthode est bloquante. |
Qu'offrent les flux caractère en entrée et comment ça fonctionne? | La classe Reader est munie de la méthode read(). Celle-ci retourne un int dont les deux octets de poids faible codent le caractère lu dans le flux. Si la fin du fichier est atteinte, la valeur −1 est retournée. Un appel à cette méthode est bloquant. |
Qu'offre les classes de sorties binaire? | Toute classe dérivant de OutputStream doit implémenter la méthode write(int). Celle-ci écrit sur le flux l’octet de poids faible de l’int en argument |
Qu'offre les classes de sorties caractères? | La classe Writer est munie de la méthode write(int). Celle-ci écrit sur le flux le caractère stocké dans les deux octets de poids faible de l’int en argument. |
Copier un fichier? ex | File inputFile = new File("ressources/original.txt" ); File outputFile = new File("ressources/copie.txt"); try { FileInputStream in = new FileInputStream(inputFile); FileOutputStream out = new FileOutputStream(outputFile); int c; while ((c = in.read()) != −1) { out.write(c ); } in. close (); out. flush (); out. close (); } catch (FileNotFoundException fnfe) { System.err.println ( fnfe ); } catch (IOException ioe) { System.err.println (ioe ); } |
Copier fichier de caractères ?ex | File inputFile = new File("ressources/original.txt" ); File outputFile = new File("ressources/copie.txt"); FileReader in = null; FileWriter out = null; try { in = new FileReader(inputFile); out = new FileWriter(outputFile); int c; while ((c = in.read()) != −1) { out.write(c ); } } catch (FileNotFoundException fnfe) { System.err.println ( fnfe ); } catch (IOException ioe) { System.err.println (ioe ); } finally { // toujours exécuté : soit après try , soit après catch try { 35 if (in != null) { in. close (); } if (out != null) { out. flush (); close (); } } catch (IOException ioe) { System.err.println ("ioe" ); } } // fin du finally } |
Que fait BufferedReader? et que permet 'il? | BufferedReader permet de mettre en tampon et lire ligne par ligne par in.readLine() |
Comment lire les infos de l'entrée standard avec le bufferedReader?? | private static BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); String s = null; try { s = br.readLine(); } catch (IOException ioe) { System.err.println ("problème de lecture d’une chaine : " + ioe); } return s; System.in est converti en flux de caractères par inputStreamReader puis bufférisé par BufferedReader |
Ecrire dans un fichier de caractère?? | PrintWriter pw = null; try { pw = new PrintWriter( new BufferedWriter( 39 new FileWriter("ressources/sortieFichier . txt" )), true); //autoflush pw.println(s ); FileWriter car sortie de caractère BufferedWriter pour une question de performances PrintWriter pour le forcage de vidage de tempon à chaque fin de ligne |
Ecrire dans un fichier binaire? | DataOutputStream out = null; try { out = new DataOutputStream( new BufferedOutputStream( new FileOutputStream(nomFichier))); } catch (FileNotFoundException fnfe) { System.err.println ( fnfe ); System.exit(1); } try { for (int i = 0; i < lesPrix.length; ++i) { out.writeDouble(lesPrix[i ]); out.writeChar(’\t’ ); out.writeInt(lesQuantites[ i ]); out.writeChar(’\t’ ); out.writeChars(lesFruits [ i ]); out.writeChar(’\n’); // choix explicite de la marque de fin de ligne } out. close (); // flush automatique (voir javadoc) } catch (IOException ioe) { System.err.println (ioe ); System.exit(2); } |
Lire dans un fichier binaire? | DataInputStream in = null; try { in = new DataInputStream( new BufferedInputStream( new FileInputStream(nomFichier))); } catch (FileNotFoundException fnfe) { System.err.println ( fnfe ); System.exit(3); } try { while (true) { // et la fin de fichier ? prix = in.readDouble(); in.readChar(); // pour "passer" le "\t" quantite = in.readInt (); in.readChar(); // pour "passer" le "\t" char chr; fruit = new StringBuffer(20); while ((chr = in.readChar()) != ’\n’) { fruit .append(chr); } System.out.printf("Tu as acheté %d kg de %s à%.2f \u20AC le kg\n", quantite, fruit , prix ); total = total + quantite ∗ prix; } } catch (EOFException eof) { // détection de la fin de fichier : // pas vraiment dans l’ esprit des exceptions ! } catch (IOException ioe) { System.err.println (ioe ); System.exit(4); } |
Les élements rentrant dans l'ecriture et la lecture de fichiers binaires? | FileOutputStream-accéde BufferedOutputStream-Mettre les accès en tampon; DataOutputStream - L’écriture des données brutes binaires DataInputStream-pour le décodage FileInputStream-accéder au fichier BufferedInputStream-n’est pas obligatoire, mais bienvenu |
Quelles éléments permettent la sérialisation d'objets? | Pour l’être, il lui suffit d’implémenter l’interface Serializable Pour écrire un objet sur un flux, on utilise un ObjectOutputStream. Pour lire un objet sur un flux, la classe ObjectInputStream . |
Comment sérialiser? | public class Data implements Serializable { } // import java.io. Serializable ; private Data[] d = {new Data(rand.nextInt(10)), new Data(rand.nextInt(10)), 18 new Data(rand.nextInt(10))}; |
Write object | ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream("worm.out")); out.writeObject("Worm storage\n"); out.writeObject(w); out. flush (); out. close (); |
Read object |
Want to create your own Flashcards for free with GoConqr? Learn more.