53 lines
2.2 KiB
Java
53 lines
2.2 KiB
Java
|
import java.io.*;
|
|||
|
import java.nio.file.*;
|
|||
|
|
|||
|
public class FirstService {
|
|||
|
// 1. Ищет в каталоге /var/data файл с наибольшим количеством строк и перекладывает его в /var/result/data.txt.
|
|||
|
|
|||
|
public static void main(String[] args) {
|
|||
|
Path sourceDir = Paths.get("/var/data");
|
|||
|
Path destinationDir = Paths.get("/var/result");
|
|||
|
Path destinationFile = destinationDir.resolve("data.txt");
|
|||
|
Path largestFile = null;
|
|||
|
long maxLineCount = 0;
|
|||
|
|
|||
|
try {
|
|||
|
// существует ли каталог /var/result, если нет, создаем
|
|||
|
if (!Files.exists(destinationDir)) {
|
|||
|
Files.createDirectories(destinationDir);
|
|||
|
} else {
|
|||
|
// иначе чистим
|
|||
|
try (DirectoryStream<Path> stream = Files.newDirectoryStream(destinationDir)) {
|
|||
|
for (Path file : stream) {
|
|||
|
Files.delete(file);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// поиск файла с наибольшим количеством строк в каталоге /var/data
|
|||
|
try (DirectoryStream<Path> stream = Files.newDirectoryStream(sourceDir)) {
|
|||
|
for (Path file : stream) {
|
|||
|
if (Files.isRegularFile(file)) {
|
|||
|
long lineCount = Files.lines(file).count();
|
|||
|
if (lineCount > maxLineCount) {
|
|||
|
maxLineCount = lineCount;
|
|||
|
largestFile = file;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// копируем файл с наибольшим количеством строк в /var/result/data.txt
|
|||
|
if (largestFile != null) {
|
|||
|
Files.copy(largestFile, destinationFile, StandardCopyOption.REPLACE_EXISTING);
|
|||
|
System.out.println("Файл " + largestFile + " скопирован в " + destinationFile);
|
|||
|
} else {
|
|||
|
System.out.println("В каталоге " + sourceDir + " нет файлов.");
|
|||
|
}
|
|||
|
|
|||
|
} catch (IOException e) {
|
|||
|
e.printStackTrace();
|
|||
|
}
|
|||
|
}
|
|||
|
}
|