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();
|
||
}
|
||
}
|
||
}
|