DAS_2024_1/afanasev_dmitry_lab_2/secondService/src/SecondService.java

52 lines
2.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import java.io.*;
import java.nio.file.*;
import java.util.*;
public class SecondService {
// 2. Ищет наименьшее число из файла /var/result/data.txt и сохраняет его третью степень в /var/result/result.txt.
public static void main(String[] args) {
Path sourceFile = Paths.get("/var/result/data.txt");
Path destinationDir = Paths.get("/var/result");
Path destinationFile = destinationDir.resolve("result.txt");
try {
// создание /var/result, если не существует
if (!Files.exists(destinationDir)) {
Files.createDirectories(destinationDir);
}
// читаем числа из файла и находим наименьшее
List<Integer> numbers = new ArrayList<>();
try (BufferedReader reader = Files.newBufferedReader(sourceFile)) {
String line;
while ((line = reader.readLine()) != null) {
try {
numbers.add(Integer.parseInt(line.trim()));
} catch (NumberFormatException e) {
System.out.println("Некорректная строка: " + line);
}
}
}
if (!numbers.isEmpty()) {
// находим наименьшее число и его третью степень
int minNumber = Collections.min(numbers);
int minNumberCubed = (int) Math.pow(minNumber, 3);
// записываем результат в /var/result/result.txt
try (BufferedWriter writer = Files.newBufferedWriter(destinationFile)) {
writer.write(String.valueOf(minNumberCubed));
System.out.println("Третья степень наименьшего числа - " + minNumber + " (" + minNumberCubed +
") сохранена в " + destinationFile);
}
} else {
System.out.println("Файл " + sourceFile + " пуст или не содержит чисел.");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}