CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Java: lire un fichier .txt

Cossinsu
Cossinsu
Niveau 4
22 avril 2013 à 14:44:36

Bonjour,

J'aimerais écrire une fonction qui "lit" un fichier texte. C'est à dire qui stockerait chaque ligne de mon fichier texte dans un "String", et renverrait à la fin un tableau de Sting correspondant à l'ensemble de mon texte.
En cherchant sur google on trouve beaucoup de gens "expliquant" comment faire, mais je ne comprends vraiment pas les codes qu'ils font. Et je suis persuadé que ce que je veux faire n'est pas compliqué...
En fait, mon fichier texte sera dans la racine du projet.

Donc je devrais avoir quelque chose comme
public String[] lireTXT(String nom)
{
/* créer un tableau de String vide

  • "ouvrir" le fichier nom.txt
  • à chaque ligne, stocker cette ligne comme un String et la rajouter au tableau (pour ça, je pense que ça n'est pas très propre, mais je créerai à chaque fois un tableau de taille n+1 dans lequel pour les n premières cases je mettrai le tableau d'avant, et le nouveau String à la dernière case)
  • s'arrêter à la fin du fichier texte
  • renvoyer le tableau de String */

}

Merci d'avance pour tout explication :)

[-ArK-]
[-ArK-]
Niveau 30
22 avril 2013 à 15:07:21

"je créerai à chaque fois un tableau de taille n+1 dans lequel pour les n premières cases je mettrai le tableau d'avant, et le nouveau String à la dernière case"
:d) utilise plutôt une Arraylist<String>, c'est fait pour (c'est un tableau à taille dynamique) :hap:

Tu peux toujours la convertir en tableau simple après si tu y tiens vraiment.

Sinon oui, c'est assez simple à faire mais le code java pour lire des fichiers est très moche et ça peut être déroutant au début. Ce que tu as trouvé sur google doit sûrement être bon :hap:

PocoIo
PocoIo
Niveau 10
22 avril 2013 à 15:14:51

" mais le code java pour lire des fichiers est très moche "

Surtout à cause de cette fichue gestion des exceptons obligatoire en Java. :oui:

dark_drow
dark_drow
Niveau 15
22 avril 2013 à 16:16:02

ouai les codes sur google sont bon mais assez lourd car tu dois passer par 3 classes différentes pour lire un fichier (corrigez moi si je me trompe)

FileInputStream pour lire ton fichier sous forme de flux (en byte)
InputStreamReader pour transformer les bytes en caracteres
BufferedReader pour connecter ton flux à un tampon pour limiter les lectures sur le disque (donc pour avoir de meilleures pref)

du coup ça donne un code un peu verbeux par rapport à plein de langage ou il suffit de faire read(fichier.txt)

Pseudo supprimé
Pseudo supprimé 22 avril 2013 à 16:20:58

try{
List<String> lines = Files.readAllLines(readFile, Charset.defaultCharset());
} catch (IOException myIOException ) {
System.err.println("Failure !");
}

Tout simplement.

dark_drow
dark_drow
Niveau 15
22 avril 2013 à 16:27:01

lol j'allais double poster mais effectivement avec Java7 ils ont simplifié les choses comme le montre Raspberry :o))

[-ArK-]
[-ArK-]
Niveau 30
22 avril 2013 à 16:49:40

Ah joli Raspberry-Pp, ça a été ajouté avec Java 7 ?
Je connaissais pas :bave:

[-ArK-]
[-ArK-]
Niveau 30
22 avril 2013 à 16:50:19

Raspberry-Pi* pardon :hap:
(bon sang j'avais tout copier coller sauf la dernière lettre et voilà, fail :( )

Pseudo supprimé
Pseudo supprimé 22 avril 2013 à 17:01:23

Ouais, Java 7 a cherché à dégager un max de boilerplate à divers endroits :)

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment