public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String fileName;
String[] split = null;
Map <Integer, String> numPassMap = new TreeMap<>();
while (!(fileName = reader.readLine()).equals("end")){
split = fileName.split(".part");
numPassMap.put(Integer.parseInt(split[1]), fileName);
}
File fileResult = new File(split[0]);
for (Map.Entry<Integer, String> entry: numPassMap.entrySet()) {
try (BufferedInputStream bufferedInputStream = new BufferedInputStream
(new FileInputStream(entry.getValue()));
BufferedOutputStream bufferedOutputStream = new BufferedOutputStream
(new FileOutputStream(fileResult, true))){
while (bufferedInputStream.available() > 0){
bufferedOutputStream.write(bufferedInputStream.read());
}
}
}
}
}Виктор
22 уровень
Как оказалось не так все и сложно, даже проще чем в правильном решении.
Обсуждается
Комментарии (7)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Виктор
9 июня 2022, 06:15
Всем спасибо, разобрался.
0
Anonymous #2963897
8 июня 2022, 13:29
если говорить о простоте то зачем использовать TreeMap с двумя параметрами если можно TreeSet с одним?) и new FileOutputStream(fileResult, true) вот тут true не нужен
0
Виктор
8 июня 2022, 13:34
Логично, и отсортирует по номеру части, согласен)
0
Виктор
8 июня 2022, 13:35
зачем сравнение переопределили в правильном решении я так и не понял
+1
Виктор
8 июня 2022, 13:35
и это тоже мне не ясно
0
Anonymous #2963897
8 июня 2022, 13:43
переопределили что бы было понимание как работает компаратор и чтоб могли сами его перенастроить если есть необходимость. Но в нашей задачи необходимости в этом нет) а опечатка да не к месту)
+1
KIRAРазработчик в prosv.ruExpert
8 июня 2022, 14:11
Сортировка строк по умолчанию не подойдет для некоторых наборов данных, к примеру если будут двухзначные числа part1, part2, ... part10. будут сортированы следующим образом:
+3