Hello everybody,
Everything works well avec 4 files, Lion.avi.part6, Lion.avi.part23, Lion.avi.part36, Lion.avi.part53.
I had used a map with the number of each files (for the key) and the file name (for value).
With the keys (numbers), the TreeMap gives the order of the files
When I used Debug, every flow was closed. I don't understand why my program is not validate. With BufferedInputStream et BufferedOutputStream, I used buffers.
package fr.codegym.task.task18.task1825;
import java.io.*;
import java.util.*;
/*
Création d'un fichier
*/
public class Solution {
public static void main(String[] args) throws IOException {
FileOutputStream fileOutputStream = null;
BufferedOutputStream bufferedOutputStream = null;
BufferedReader lecteur = new BufferedReader(new InputStreamReader(System.in));
Map<Integer, String> listeDeFichiers = new TreeMap<>();
while (true) {
String fichier = lecteur.readLine();
if(fichier.equals("end")) {
for(Map.Entry<Integer, String> paire : listeDeFichiers.entrySet()) {
String value = paire.getValue();
FileInputStream fileInputStream = new FileInputStream(value);
BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream, 1000);
fileOutputStream = new FileOutputStream("/home/pascal/exosCodegym/exo1825/Lion.avi", true);
bufferedOutputStream = new BufferedOutputStream(fileOutputStream);
int i;
while((i = bufferedInputStream.read()) != -1) {
bufferedOutputStream.write(i);
}
bufferedInputStream.close();
fileInputStream.close();
bufferedOutputStream.flush();
bufferedOutputStream.close();
fileOutputStream.close();
}
lecteur.close();
break;
}
int valeur = Integer.parseInt(fichier.substring(fichier.indexOf(".part") + 5));
listeDeFichiers.put(valeur, fichier);
}
}
}