Script pour fichier texte en java

Fermé
triceratops - 28 mai 2012 à 22:43
 Utilisateur anonyme - 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

A voir également:

4 réponses

Utilisateur anonyme
29 mai 2012 à 09:21
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
0
triceratops
29 mai 2012 à 16:17
salut danimo, d'abord merci, ensuite comment faire pour lui dire de lire le fichier ligne par ligne et puis de les traiter tous ?
0
Thyjukil Messages postés 43 Date d'inscription jeudi 24 mai 2012 Statut Membre Dernière intervention 7 mai 2014 4
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();  
0
triceratops
29 mai 2012 à 16:33
oK et pour sauvergarder dans un fichier ? Excusez du niveau de questions mais je suis vraiment bete.
0
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)
0
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
Plus on apprend... plus on se rend compte qu'on ne connaît pas grand-chose.
0
Utilisateur anonyme
30 mai 2012 à 08:55
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);
0