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
***# ***