IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Couper un fichier texte en plusieurs fichiers texte


Sujet :

Java

  1. #1
    Membre du Club
    Femme Profil pro
    Doctorante
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Doctorante
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Points : 47
    Points
    47
    Par défaut Couper un fichier texte en plusieurs fichiers texte
    Bonsoir,
    j'ai une classe java qui coupe un fichier texte en plusieurs fichiers, dès qu'elle trouve la ligne qui commence par "***# ***" elle crée un nouveau fichier,mais le problème de cette classe qui ne garde pas les premiers lignes dans les premiers fichiers: c'est à dire que les fichiers crées sont désordonnés merci de m'aider a m'indique la ligne que dois je modifier pour qu'elle respecte l'ordre les fichiers
    voila la classe java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    /**
    * FileSplitter.java by HackTrack
    */
    public class FileSplitter {
    	private static File destDir;
     
    	public static File[] splitFile(String filePath, String toDir)
    			throws IOException {
    		handleToDir(toDir);
    		File[] splittedFiles;
    		List<File> files = new ArrayList<File>();
    		BufferedReader reader = new BufferedReader(new FileReader(filePath));
    		String fileName = new File(filePath).getName();
    		StringBuffer fileContent = new StringBuffer();
    		String line;
    		File currentFile = FileSplitter.createSplittedFile(fileName, files
    				.size());
    		while ((line = reader.readLine()) != null) {
    			fileContent.append(line+"\n");
    			if (line.equals("***# ***")) {
    				FileSplitter.writeFile(currentFile, fileContent.toString());
    			//	System.out.println(currentFile);
    				files.add(currentFile);
    				fileContent = new StringBuffer();
    			currentFile = FileSplitter.createSplittedFile(fileName, files
    						.size());
    			}
    		}
    		FileSplitter.writeFile(currentFile, fileContent.toString());
     
    		files.add(currentFile);
     
    		splittedFiles = new File[files.size()];
    		int c=0;
    		for (File file : files) {
    			splittedFiles[c] = files.get(c);
    			c++;
    		}
    		return splittedFiles;
    	}
     
    	private static void handleToDir(String toDir) {
    		destDir = new File(toDir);
    		if (destDir.exists())
    			destDir.delete();
    		destDir.mkdir();
    	}
     
    	private static File createSplittedFile(String fileName, int index)
    			throws IOException {
    		return File.createTempFile(new File(fileName).getName(),
    				".txt", destDir);
    	}
     
    	private static void writeFile(File destFile, String content)
    			throws IOException {
    		BufferedWriter writer = new BufferedWriter(new FileWriter(destFile));
    		writer.write(content);
    		//System.out.println(content);
    		writer.flush();
    		writer.close();
    		writer = null;
    	}
     
    	public static void main(String[] args) {
    		try {
    			// 1048576 = 1Mo
    			System.out.println(FileSplitter.splitFile("C:/Users/HP/Desktop/27Decembre2013/TradTest.txt",
    					"C:/Users/HP/Desktop/27Decembre2013/TradFiles3").length
    					+ " files generated");
     
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
     
    }
    le fichier TradTest.txt
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    ***# ***
    Reprise# Resumption
    de#
    la#
    session# session
    ***# ***
    Vous# You
    avez# have
    souhaité# requested
    un# a
    débat# debate
    à#
    ce# this
    sujet# subject
    dans# in
    les#
    prochains# next few
    jours# days
    au#
    cours# during
    de#
    cette# this
    période#
    de#
    session# part-session
    ***# ***
    Je# Please
    vous#
    invite#
    à#
    vous#
    lever# rise
    pour# for
    cette# this
    minute# minute'
    de#
    silence# s silence
    ***# ***
    Le# The
    Parlement# House
    debout# rose and
    observe# observed
    une# a
    minute# minute'
    de#
    silence# s silence
    ***# ***
    Madame# Madam
    la#
    Présidente# President
    c'est#
    une# a
    motion# point
    de#
    procédure# order
    ***# ***
    Vous# You
    avez#
    probablement# will
    appris# aware
    par# from
    la#
    presse# press
    et# and
    par#
    la#
    télévision# television
    que# that
    plusieurs# number
    attentats#
    à#
    la#
    bombe# bomb explosions
    et# and
    crimes#
    ont# have
    été# been
    perpétrés# killings
    au# in
    Sri# Sri
    Lanka# Lanka
    ***# ***
    Oui# Yes
    Monsieur# Mr
    Evans# Evans
    je# I
    pense# feel
    qu'une# an
    initiative# initiative
    dans#
    le#
    sens# type
    que#
    vous# you
    venez# have just
    de#
    suggérer# suggested
    serait# would be
    tout# entirely
    à#
    fait#
    appropriée# appropriate
    ***# ***

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Tu pourrais commencer par remplacer cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private static File createSplittedFile(String fileName, int index)
    throws IOException {
    return File.createTempFile(new File(fileName).getName(),
    ".txt", destDir);
    }
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    private static File createSplittedFile(String fileName, int index) {
     
       File file=new File(destDir, fileName); // pas terrible, cette variable destDir statique !!!
       String name = file.getName(); 
       int pos = name.lastIndexOf("."); // détection de l'extension
       if( pos<0 ) {
          // pas d'extension
          name += "." + index;
       }
       else {
          name = name.substring(0,pos)+"."+index+name.substring(pos);
       }
       return new File(file.getParentFile(), name);
     
    }
    Ainsi tu auras des fichiers nommés, par exemple si ton fichier d'origine est TradTest.txt :
    TradTest.0.txt
    TradTest.1.txt
    TradTest.2.txt
    ...
    

    PS S'il-te-plait, penses aux balises code et pre quand tu mets du code et des contenus de fichiers, pour nous faciliter la lecture...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre du Club
    Femme Profil pro
    Doctorante
    Inscrit en
    Mai 2012
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Doctorante
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2012
    Messages : 58
    Points : 47
    Points
    47
    Par défaut Salut,
    merci beaucoup pour votre aide , vous êtes super mes amis
    et merci pour vos remarques

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer textes dans plusieurs fichiers RTF sans les ouvrir
    Par jpvba65 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 25/01/2014, 17h13
  2. Réponses: 10
    Dernier message: 26/01/2011, 11h15
  3. [OpenOffice] Recherche texte dans plusieurs fichiers
    Par robv dans le forum OpenOffice & LibreOffice
    Réponses: 0
    Dernier message: 13/12/2010, 19h56
  4. [XL-2003] Couper un fichier txt en plusieurs fichiers
    Par alainb dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/10/2010, 18h24
  5. Couper un fichier html en plusieurs fichiers
    Par Petitcodeur dans le forum Langage
    Réponses: 9
    Dernier message: 16/10/2006, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo