Posez votre question Signaler

Script pour fichier texte en java

triceratops - Dernière réponse le 30 mai 2012 à 08:55
Bonjour,
Ja, un fichier ou il y a plus de 20000 lignes, chaque ligne represente un chemin d'acces comme ceci:
U:\www\architecture\diagrammes\Applications\BOS\MIA\index_fichiers\maximize.gif.txt
Comment faire pour dire a java d'enlever l'arborescence et de ne laisser que le nom du fichier. Ce qui avec la ligne présenté plus haut donnerait maximize.gif.txt
Lire la suite 
Réponse
+0
moins plus
Salut,

Tu vas avoir des "illegal escape character" lors de la compile, il faudrait doubler les "\\"

Mais voici ce que tu pourais faire si le nom du fichier est toujours en fin de ligne:

String ligne= "U:\\www\\architecture\\diagrammes\\Applications\\BOS\\MIA\\index_fichiers\\maximize.gif.txt";
         
            String nomFic = "";
         
            int index = ligne.lastIndexOf("\\");
            if(index == -1)
               System.out.println("Pas de \\");
            else
               nomFic = ligne.substring(index +1);
            System.out.println("Nom du fichier = " + nomFic);

Cordialement,

Dan
Ajouter un commentaire
Annonces
 
moins plus
Réponse
+0
moins plus
salut danimo, d'abord merci, ensuite comment faire pour lui dire de lire le fichier ligne par ligne et puis de les traiter tous ?
Thyjukil 43Messages postés jeudi 24 mai 2012Date d'inscription 7 mai 2014Dernière intervention - 29 mai 2012 à 16:26
Bonjour, pour lire un fichier ligne par ligne tu peux utiliser la classe BufferedReader.
BufferedReader br = new BufferedReader(new FileReader(new File("tonFichier")));

String line = br.readLine();
while (line != null)   // readLine renvoie la valeur null lorsque la fin de fichier est atteinte
{
          /* Ton traitement */
          line = br.readLine();
}

br.close();  
Répondre
triceratops- 29 mai 2012 à 16:33
oK et pour sauvergarder dans un fichier ? Excusez du niveau de questions mais je suis vraiment bete.
Répondre
triceratops- 29 mai 2012 à 16:50
Voici mon code
public class texte {




public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new FileReader(new File("ihssendalloul")));

String line = br.readLine();
while (line != null) // readLine renvoie la valeur null lorsque la fin de fichier est atteinte
{
/* Ton traitement */
int index = line.lastIndexOf("\\");
String nomFic = "";
line = br.readLine();
nomFic = line.substring(index +1);
System.out.println(nomFic);

}

br.close();

}

}

Ca marche pour quelaues lignes et puis ca me donne ca
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -8
at java.lang.String.substring(Unknown Source)
at java.lang.String.substring(Unknown Source)
at texte.main(texte.java:33)
Répondre
Ajouter un commentaire
Annonces
 
moins plus
Réponse
+0
moins plus
Salut,

L'erreur que tu signales semble ne pas correspondre au code que tu donnes ou alors c'est un extrait...

Peux-tu me donner la liste EXACTE de QUELQUES lignes (surtout pas 20000) pour que je puisse tester en réel.

Autre chose, c'est quoi ce fichier ihssendalloul ? un fichier texte ?

À essayer car tu ne lis pas d'autre ligne dans la boucle while:

public static void main(String[] args) throws IOException {  
         //BufferedReader br = new BufferedReader(new FileReader(new File("ihssendalloul"))); 
         BufferedReader br = new BufferedReader(new FileReader("ihssendalloul")); 
       
         //String line = br.readLine();  
         String line;  
         while ((line = br.readLine()) != null) 
         //while (line != null) // readLine renvoie la valeur null lorsque la fin de fichier est atteinte  
         {  
         /* Ton traitement */  
            int index = line.lastIndexOf("\\");  
            String nomFic = "";  
            line = br.readLine();  
            nomFic = line.substring(index +1);  
            System.out.println(nomFic);  
          
         }  
       
         br.close();  
       
      } 


Cordialement,

Dan
Ajouter un commentaire
Réponse
+0
moins plus
Re,

Désolé, je n'avais pas vu la ligne line = br.readLine(); dans la boucle; il faut la supprimer la lecture se faisant dans while ((line = br.readLine()) != null)

/* Ton traitement */  
            int index = line.lastIndexOf("\\");  
            String nomFic = "";  
           // line = br.readLine();  // <<<<<<<< SUPPRIMER
            nomFic = line.substring(index +1);  
            System.out.println(nomFic);
Ajouter un commentaire
Ce document intitulé «  Script pour fichier texte en java  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.