Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3102 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [java pour les nuls] question gratuite sur la lecture d'un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[java pour les nuls] question gratuite sur la lecture d'un fichier

n°760269
Giz
Posté le 11-06-2004 à 11:56:25  profilanswer
 

Je cherche à lire un fichier texte avec Java 1.5.
OK j'ai bien vu la classe FileInputStream, mais elle dispose que peu de méthodes :/.
Je ne trouve pas mes bonnes petites vieilles méthodes du C : fseek, fgets, ...  :sweat:  
Sinon la méthode read () de la classe renvoie un int : c'est un type char en fait non (code sur un int) ?  :heink:  
 
thx!

mood
Publicité
Posté le 11-06-2004 à 11:56:25  profilanswer
 

n°760275
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 11-06-2004 à 11:59:40  profilanswer
 

Ba ouais, Java c'est de l'objet, normal que tu retrouves pas tes fonctions de C [:spamafote]
Donc pour lire bêtement un fichier, c'est effectivement read() dans FileInputStream. Au cas où tu saurais pas, int et char c'est la même chose :o Mais FileInputStream n'est pas spécifique (et donc peu adapté) à la lecture de fichier texte.
Si tu veux faire de la lecture de chaînes, utilise plutôt FileReader (couplé avec un BufferedReader qui te permettra de faire de la lecture de ligne via readLine()).


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°760285
Giz
Posté le 11-06-2004 à 12:10:50  profilanswer
 

Taiche a écrit :

Ba ouais, Java c'est de l'objet, normal que tu retrouves pas tes fonctions de C [:spamafote]
Donc pour lire bêtement un fichier, c'est effectivement read() dans FileInputStream. Au cas où tu saurais pas, int et char c'est la même chose :o Mais FileInputStream n'est pas spécifique (et donc peu adapté) à la lecture de fichier texte.
Si tu veux faire de la lecture de chaînes, utilise plutôt FileReader (couplé avec un BufferedReader qui te permettra de faire de la lecture de ligne via readLine()).


 
merci  :hello:  
mais je ne touve tjs pas mon fseek :/
 
PS : heuresement que dans la javadoc il y a une partie SeeAlso dans la description de la classe ! voila ce qu'on trouve pour FileInputStream :


See Also:
File, FileDescriptor, FileOutputStream


...ils auraient pu en mettre un peu plus  :sarcastic:
 
PS2 : je viens de decouvrir InputStreamReader aussi

n°760292
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 11-06-2004 à 12:15:26  profilanswer
 

Pour fseek, passe alors par RandomAccessFile qui contient la méthode seek().
Après, il faut aussi que tu piges les notions de flux (stream) qui n'ont pas grand-chose à voir avec les fonctions de file classique du C. Si tu connais iostream.h en C/C++, alors t'auras déjà une meilleure idée de ce que font les streams de Java.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°760352
Giz
Posté le 11-06-2004 à 12:47:19  profilanswer
 

OK, et juste un dernier petit truc : je chope une ligne qui contient :
DIMENSION: 34
Celle ci je la mets ds un StringBuffer et je dois chope le nombre 34 : suffit de me placer au bon index, de lire les 2 caracteres (3 et 4) et pour recuperer ca en int ?

n°760355
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 11-06-2004 à 12:49:18  profilanswer
 

Non. Une fois que t'as lu les caractères, t'as leur valeur ASCII. Ici, 33 et 34.
Pour passer d'une String à un int, vois du côté de Integer.parseInt(). Et hop, t'auras 34.
 
Lis la javadoc, c'est 'achement utile :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°760389
Giz
Posté le 11-06-2004 à 13:32:10  profilanswer
 

Bon tu as l'air de bien connaitre la chose ;) (j'ai du mal, jconnais aucune fct Java et ca fais 1 heure que je suis en train de lire la javadoc pour trouver les fct qu'il me faut)
...jvoudrais a partir d'une chaine (type string) suivante par exemple:


  43 56 78   89  56       45  56 43  5  7    8


 
dans une boucle faire :
tq que !fin_chaine
{
  virer les blancs;
  matrix[i][j] = choper le nombre;
}
 
En C, cela se fait tel quel en 2 instructions. En Java jse po  
 
 [:spamafote]  
 
merci d'accelerer mes recherches  :)

n°760414
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 11-06-2004 à 13:55:58  profilanswer
 

Pour tout ce qui est gestion de boucle en fonction des caractères, vois java.util.StringTokenizer.
Une fois que t'as le nombre dans une chaîne, Interger.parseInt() :o


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°762539
TBone
Pouet.
Posté le 14-06-2004 à 11:16:21  profilanswer
 

voire même maLigne.split(" " ); qui renvoie un array de tokens séparés par le " "
 
mais je ne sais pas lequel est le plus propre... le split() ou le StringTokenizer ?

n°762542
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 14-06-2004 à 11:19:02  profilanswer
 

Le StringTokenizer, surtout pour les débutants :o split() demande une regexp en entrée, c'est pas hyper léger pour faire un truc aussi simple (faudrait faire des tests comparatifs, pour voir, un jour) et c'est surtout beaucoup moins lisible (à mon sens).


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
mood
Publicité
Posté le 14-06-2004 à 11:19:02  profilanswer
 

n°762573
Taz
bisounours-codeur
Posté le 14-06-2004 à 11:36:04  profilanswer
 

Taiche a écrit :

Ba ouais, Java c'est de l'objet, normal que tu retrouves pas tes fonctions de C [:spamafote]

vas y molo, je trouve que les fichiers sont particulièrement chiants à utiliser en Java, il te faut 3 lignes pour ouvrir un fichier texte alors que dans certains langages récents, il te faut presque une instraction. enfin c'est surtout du au fait que tu peux pas avoir de relation en diamant, faut donc faire de la compisition et construire 36 couches les une au dessus des autres

n°762586
TBone
Pouet.
Posté le 14-06-2004 à 11:45:03  profilanswer
 

je viens de relire la javadoc, j'avais oublié que le STok. ne prenais pas de regex en argument :jap:
 
il faudrait faire des p'tits tests en effet pour savoir si on perd plus de temps à jouer avec la regexp ou de jouer avec la construction d'une collection.

n°2188901
rjfetra
Posté le 04-05-2013 à 10:43:05  profilanswer
 

J'ai un petit soucis sur la lecture d'un fichier en Java. Voila j'ai un fichier .ini dont la forme est comme ceci:
   [abrev]
n1=slt
n2=kw
  [sign]
n1=salut
n2=quoi
 et ce que je veux faire c'est d'extraire la valeur des n1 et n2 de ces 2 groupes et les mettres dans un array[][] ou le premier colonne contient l'abrev et le 2em contient celui du sign. J'ai besoin d'aide si quelqu'un pouvait m'aider a resoudre ce probleme!
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [java pour les nuls] question gratuite sur la lecture d'un fichier

 

Sujets relatifs
Question sur la memoireEcrire un fichier txt codé en utf-8
[awk/sed] Traitement du fichier de stats boinc...[java] Les Set se basent sur quoi pour comparer ?
[Servlet]Ouverture d'un fichier non HTMLfusionnement des fichiers excel en java
[Java][Débutant] java.lang.NoClassDefFoundError : ??Utiliser un __gnu_cxx::stdio_filebuf pour lire un fichier
[Java] Problème de design : repercution de modificationsecriture dans un fichier
Plus de sujets relatifs à : [java pour les nuls] question gratuite sur la lecture d'un fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR