Тесты
C:\Users\dayme\Desktop\first.txt.part10
C:\Users\dayme\Desktop\first.txt.part11
C:\Users\dayme\Desktop\first.txt.part18
C:\Users\dayme\Desktop\first.txt.part101
C:\Users\dayme\Desktop\first.txt.part1
end
------------------------------------------------------
Имя файла для OutputStream(раскомментить26 строка)
C:\Users\dayme\Desktop\first.txt.
------------------------------------------------------
Проверяю порядок вывода из Threemap...(раскомментить36-38 строка)
1 C:\Users\dayme\Desktop\first.txt.part1
10 C:\Users\dayme\Desktop\first.txt.part10
11 C:\Users\dayme\Desktop\first.txt.part11
18 C:\Users\dayme\Desktop\first.txt.part18
101 C:\Users\dayme\Desktop\first.txt.part101
package com.javarush.task.task18.task1825;
/*
Собираем файл
*/
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Solution {
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) {
String s = reader.readLine();
Pattern pattern = Pattern.compile("^.+\\.");
Matcher matcher = pattern.matcher(s);
String filenameOutput = null;
while (matcher.find()) {
filenameOutput = s.substring(matcher.start(), matcher.end());
}
// System.out.println(filenameOutput);
TreeMap<Integer, String> map = new TreeMap<>();
while (!s.equals("end")) {
int partNumber = Integer.parseInt(s.substring(s.lastIndexOf("t")+1));
// System.out.println(num);
// System.out.println(s);
map.put(partNumber, s);
s = reader.readLine();
}
// for (Map.Entry<Integer, String> pair: map.entrySet()){
// System.out.println(pair.getKey()+ " " +pair.getValue());
// }
OutputStream outStream = new FileOutputStream(filenameOutput);
// System.out.println(filenameOutput);
for (Map.Entry<Integer, String> pair: map.entrySet()
) {
InputStream inStream = new FileInputStream(pair.getValue());
byte[] byteArr = new byte[inStream.available()];
while (inStream.available() > 0) {
int count = inStream.read(byteArr);
outStream.write(byteArr, 0, count);
}
inStream.close();
}
outStream.close();
} catch (FileNotFoundException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}