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:
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 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(); } } }
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 ***# ***
Partager