Проводил несколько тестов:
В папке folder лежит 5 файлов
folder\testLionePngSuperResourceRTX.txt.part1 в котором написано 1
folder\testLionePngSuperResourceRTX.txt.part4 в котором написано 2
folder\testLionePngSuperResourceRTX.txt.part2 в котором написано 3
folder\testLionePngSuperResourceRTX.txt.part5 в котором написано 4
folder\testLionePngSuperResourceRTX.txt.part3 в котором написано 5
Запускаю код,создается файл folder\testLionePngSuperResourceRTX.txt,в котором написано 12345(вроде логично)
Сделал так же только с одним файлом - работает,
Вариант с записью по байтово тоже не принимает :(
package com.javarush.task.task18.task1825;
import java.io.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
/*
Собираем файл
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ArrayList<String> files = new ArrayList<>();
// Запись в коллекцию
while(true) {
String filePart = reader.readLine();
if(filePart.equals("end"))
break;
files.add(filePart);
}
reader.close();
//Сортировка коллекции,чтобы файлы шли по порядку part1 part2 part3
Collections.sort(files);
// Путь к папке где лежат файлы
String tempString = files.get(0); //чтобы не вызывать постоянно files.get(0) на следующей строке
String folderName = tempString.substring(0,tempString.lastIndexOf("\\")) + tempString.substring(tempString.lastIndexOf("\\"),tempString.lastIndexOf('.'));
//Запись в файл
try( BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(folderName))) {
for (String file : files) {
try (BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(file))) {
while (true) {
byte[] buffer = new byte[131072];
int count = inputStream.read(buffer);
if(inputStream.read(buffer) == -1)
break;
outputStream.write(buffer, 0, count);
}
}
}
}
}
}
У меня даже ошибка вылетает,если пишу без пути