Lire fichier de String avec java

Fermé
romainnico - Modifié par romainnico le 17/12/2015 à 18:29
KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 17 déc. 2015 à 21:04
Bonjour,

j'aimerais savoir si c'est possible de lire un fichier en utilisant seulement les classes DataInputStream. Sur internet je vois que beaucoup utilise des Buffered ou Scanner. Notre prof nous oblige à utiliser cela.
De plus si c'est possible il faut donc créer une fonction public string toString() ?
En fait ce que nous voulons faire c'est que le programme lit un fichier composé de mots et associe pour chaque mot un numéro : (1) pour le premier mot, (2) le deuxième mot...
Merci d'avance.


A voir également:

1 réponse

KX Messages postés 16754 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 020
17 déc. 2015 à 21:04
Bonjour,

"j'aimerais savoir si c'est possible de lire un fichier en utilisant seulement les classes DataInputStream"

La réponse est non.

Si on regarde dans la documentation, on voit que DataInputStream n'a qu'un seul constructeur, dont le paramètre n'est pas un fichier, mais un InputStream.

https://docs.oracle.com/javase/8/docs/api/java/io/DataInputStream.html#constructor.summary

Cette classe manipule donc un flux, mais ne le créé pas elle même. Il te faudra au moins une autre classe, un FileInputStream par exemple, pour créer le flux à partir de ton fichier et le passer à ton DataInputStream.

https://docs.oracle.com/javase/8/docs/api/java/io/FileInputStream.html

Exemple :

DataInputStream in = new DataInputStream(new FileInputStream("C:/file.txt"));

"Sur internet je vois que beaucoup utilise des Buffered ou Scanner."
BufferedInputStream c'est pour optimiser le traitement, en intercalant un buffer cela permet d'accéder au fichier moins souvent en ramenant plus de données à chaque fois.
Scanner est une classe très pratique pour les fichiers textes qui disposent de fonctionnalités puissantes d'extraction de données grâce aux expressions régulières.
Ces deux classes sont donc utiles, mais optionnelles, contrairement au FileInputStream que tu vas être obligé de créer.

"il faut donc créer une fonction public string toString() ?"
Je ne vois pas le rapport entre cette question et le reste.
0