Code works but doesn't pass the verification for about 80% WFT ??? ^)
package com.codegym.task.task18.task1825;
import java.io.*;
import java.util.*;
/*
Building a file
*/
public class Solution {
public static void main(String[] args) throws IOException {
ArrayList<Integer> indexArray = new ArrayList<>();
BufferedReader readerName = new BufferedReader(new InputStreamReader(System.in));
String fileName = null, previousFileName, nameBeforePart, nameAfterPart;
while (true) {
previousFileName = fileName;
fileName = readerName.readLine();
if (fileName.equals("end")) { // Get the name of file for writing
String[] tmp = previousFileName.split("part" + getPartIndex(previousFileName) + "\\.", 2);
nameBeforePart = tmp[0];
nameAfterPart = tmp[1];
break;
}
indexArray.add(getPartIndex(fileName));
}
readerName.close();
Collections.sort(indexArray); // Sort our array
BufferedOutputStream writer = new BufferedOutputStream(new FileOutputStream(nameBeforePart + nameAfterPart));
BufferedInputStream reader;
for(Integer index : indexArray) {
reader = new BufferedInputStream(new FileInputStream(nameBeforePart + "part" + index + "." + nameAfterPart));
byte[] data = new byte[reader.available()];
while(reader.available() > 0) {
reader.read(data);
writer.write(data);
}
reader.close();
}
writer.close();
}
public static int getPartIndex(String name){ // Get the number after part...
String[] tmp = name.split("part", 2);
String[] tmp2 = tmp[1].split("\\.",2);
return (Integer.parseInt(tmp2[0]));
}
}