Добрый день!
На мой взгляд решение проходит по условиям, однако проверку не проходит. Не могу понять почему.
public class Solution {
public static void main(String[] args) throws IOException {
if (args.length == 0) return;
String fileName = args[1];
File dir = new File(args[0]);
File file = new File(fileName);
File newFile = new File(file.getParent() + "//allFilesContent.txt");
if (FileUtils.isExist(file)) FileUtils.renameFile(file, newFile);
List<File> list = new ArrayList<>();
readDir(dir, list);
list.stream()
.sorted()
.forEach(s -> {
try (FileInputStream stream = new FileInputStream(s);
FileOutputStream outputStream = new FileOutputStream(newFile, true)) {
while (stream.available() != 0) {
outputStream.write(stream.read());
}
outputStream.write("\n".getBytes());
} catch (IOException e) {
e.printStackTrace();
}
});
}
public static void readDir (File dir, List<File> list) throws IOException {
File[] files = dir.listFiles();
assert files != null;
for (File file : files) {
if (file.isDirectory()) readDir(file, list);
else if (file.length() <= 50) list.add(file);
}
}
}
package com.javarush.task.task31.task3101;
import java.io.*;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.*;
import java.util.stream.Collectors;
import com.javarush.task.task31.task3101.FileUtils;
/*
Проход по дереву файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
if (args.length == 0) return;
String fileName = args[1];
File dir = new File(args[0]);
File file = new File(fileName);
File newFile = new File(file.getParent() + "//allFilesContent.txt");
if (FileUtils.isExist(file)) FileUtils.renameFile(file, newFile);
List<File> list = new ArrayList<>();
readDir(dir, list);
list.stream()
.sorted()
.forEach(s -> {
try (FileInputStream stream = new FileInputStream(s);
FileOutputStream outputStream = new FileOutputStream(newFile, true)) {
while (stream.available() != 0) {
outputStream.write(stream.read());
}
outputStream.write("\n".getBytes());
} catch (IOException e) {
e.printStackTrace();
}
});
}
public static void readDir (File dir, List<File> list) throws IOException {
File[] files = dir.listFiles();
assert files != null;
for (File file : files) {
if (file.isDirectory()) readDir(file, list);
else if (file.length() <= 50) list.add(file);
}
}
}