public class Solution {
    public static void main(String[] args) throws IOException {
        File path = new File(args[0]);
        File resultFileAbsolutePath = new File(args[1]);
        File newFile = new File(resultFileAbsolutePath.getParent() + "/allFilesContent.txt");
        FileUtils.renameFile(resultFileAbsolutePath, newFile);

        Set<String> set = new TreeSet<>();

        Files.walkFileTree(path.toPath(), new SimpleFileVisitor<Path>() {
            @Override
            public FileVisitResult visitFile(Path path, BasicFileAttributes basicFileAttributes) throws IOException {
                if (Files.isRegularFile(path)) {
                    if (basicFileAttributes.size() <= 50) {
//                        Files.write(newFile.toPath(), Files.readAllBytes(path), StandardOpenOption.APPEND);
                        set.add(path.getFileName().toString());

                    }
                }
                return FileVisitResult.CONTINUE;
            }
        });

        for (String eachFile : set) {
            try(BufferedInputStream reader = new BufferedInputStream(new FileInputStream(eachFile));
                BufferedOutputStream writer = new BufferedOutputStream(new FileOutputStream(newFile, true))){
                while (reader.available()>0){
                    byte[] b = new byte[reader.read()];
                    writer.write(b);
                }
                writer.write("\n".getBytes());
            }
            catch (IOException e){
                e.getStackTrace();
            }
        }
    }
}