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

  FORUM HardWare.fr
  Programmation
  Java

  lecture d'un fichier java .nio

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lecture d'un fichier java .nio

n°2183656
bloomingda​ls
Posté le 02-04-2013 à 17:36:48  profilanswer
 

bonjour tout le monde,
 
le code suivant permet de lire un fichier et d'écrire son contenu dans un autre (j'utilise des fichier .nio au lieu de .io car la taille de mes fichiers est énorme).
 
le problème est que le fichier en entrée (celui qui est entrain d'être lu) est parallèlement rempli par un autre programme java qui met beacoup de temps pour le faire. je voudrai donc récupérer a chaque fois 1000 lignes de ce fichier, les mettre dans un autre fichier pour des fins de traitement puis ajouter un autre 1000 lignes et ainsi de suites jusqu'à ce que la taille du fichier de départ soit atteinte.
 
voici le bout de code
 
public static void main(String[] args) {
    Path ecrire_ici= Paths.get("/root/Desktop/prefixtest" );
    Path llire_ici= Paths.get("/root/Desktop/split" );
    Charset charset = Charset.forName("UTF-8" );
    List<String> lines = new ArrayList<>();
 
  try
 {
  List<String> lines1 = Files.readAllLines(lire_ici, charset);
 
         for (String line : lines1)
  {
   lines.add(line);
  }
 }
  catch (IOException e)
  {
    System.out.println(e);
  }
   
  try
  {
    Files.write(ecrire_ici, lines, charset, StandardOpenOption.APPEND);
  }
catch (IOException e)
{
     
 }
    }
 
est ce que vous pouvez m'aidez  
merci

mood
Publicité
Posté le 02-04-2013 à 17:36:48  profilanswer
 

n°2184271
FranceDenB​as
1 dépense = 1 socialiss' :o
Posté le 05-04-2013 à 10:09:32  profilanswer
 

bloomingdals a écrit :

bonjour tout le monde,

 

le code suivant permet de lire un fichier et d'écrire son contenu dans un autre (j'utilise des fichier .nio au lieu de .io car la taille de mes fichiers est énorme).

 

le problème est que le fichier en entrée (celui qui est entrain d'être lu) est parallèlement rempli par un autre programme java qui met beacoup de temps pour le faire. je voudrai donc récupérer a chaque fois 1000 lignes de ce fichier, les mettre dans un autre fichier pour des fins de traitement puis ajouter un autre 1000 lignes et ainsi de suites jusqu'à ce que la taille du fichier de départ soit atteinte.

 

voici le bout de code

 

public static void main(String[] args) {
    Path ecrire_ici= Paths.get("/root/Desktop/prefixtest" );
    Path llire_ici= Paths.get("/root/Desktop/split" );
    Charset charset = Charset.forName("UTF-8" );
    List<String> lines = new ArrayList<>();

 

 try
 {
  List<String> lines1 = Files.readAllLines(lire_ici, charset);

 

        for (String line : lines1)
  {
   lines.add(line);
  }
 }
  catch (IOException e)
  {
    System.out.println(e);
  }
 
  try
  {
    Files.write(ecrire_ici, lines, charset, StandardOpenOption.APPEND);
  }
catch (IOException e)
{
   
 }
    }

 

est ce que vous pouvez m'aidez
merci


edit : pour que ton code soit plus lisible utilises les balises code :

Code :
  1. public static void main(String[] args) {
  2.     Path ecrire_ici= Paths.get("/root/Desktop/prefixtest" );
  3.     Path llire_ici= Paths.get("/root/Desktop/split" );
  4.     Charset charset = Charset.forName("UTF-8" );
  5.     List<String> lines = new ArrayList<>();
  6.   try
  7. {
  8.  List<String> lines1 = Files.readAllLines(lire_ici, charset);
  9.          for (String line : lines1)
  10.  {
  11.   lines.add(line);
  12.  }
  13. }
  14.  catch (IOException e)
  15.  {
  16.    System.out.println(e);
  17.  }
  18.  
  19.   try
  20.   {
  21.     Files.write(ecrire_ici, lines, charset, StandardOpenOption.APPEND);
  22.   }
  23. catch (IOException e)
  24. {
  25.    
  26. }
  27.     }
 

1) Ton premier try...catch IOException doit se faire uniquement sur readAllLines.
2) Ajouter un entier indexDeFichier
3) Inclure une sous-fonction qui serait l'équivalent de ton deuxième try...catch
4) Ton for devrait inclure un compteur nbLignes à incrémenter à chaque ligne lue aussi
5) Remplir le tableau et avec ce compteur nbLignes une fois rendu à mille appeller la sous fonction avec les paramètres qui vont bien et si pas d'erreur mettre lines à vide et nbLignes à 0, si erreur la traiter
6) Une fois ton for fini si le tableau lines est non vide rappeler la sous fonction

 

Pour 4,5,6 : on peut passer par un while aussi.

 

7) Ne pas oublier la gestion d'exception au niveau de la sous-fonction et voir comment gérer le retour de la sous-fonction dans ces cas dans le Main.


Message édité par FranceDenBas le 09-04-2013 à 09:37:19

---------------
"Il a inventé le bougisme : je bouge donc je suis" :sol: - Dupont-Aignan à propos de Son Altesse Sérénissime Sarkal 1er. Merci Handsome Devil et Meriadeck.
n°2184292
bloomingda​ls
Posté le 05-04-2013 à 12:06:00  profilanswer
 

merci bcp je vais essayer cet algortithme


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

  lecture d'un fichier java .nio

 

Sujets relatifs
[java]Lecture d'un gros fichier texte[Java] Problème de lecture dans un fichier
[résolu]lecture d'un fichier créé [JSP/JAVA][Java] lecture d'un fichier : y'a un lézard quelque part...
[JAVA] Lecture dans de fichier de N caractères[JAVA] Lecture/Ecriture dans un fichier texte.
[java][Resolu] Probleme lecture de fichier[JAVA] Lecture de fichier
[java] pb de lecture de fichier texte[java pour les nuls] question gratuite sur la lecture d'un fichier
Plus de sujets relatifs à : lecture d'un fichier java .nio


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