diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 5dfc11b..419f5ec 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -1,20 +1,45 @@ package com.example.task01; +import java.io.BufferedReader; import java.io.File; import java.io.IOException; +import java.io.InputStreamReader; public class Task01Main { public static void main(String[] args) throws IOException, InterruptedException { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - - /* + System.out.println(extractSoundName(new File("task01/src/main/resources/3724.mp3"))); + System.out.println(extractSoundName(new File("task01/src/main/resources/3726.mp3"))); System.out.println(extractSoundName(new File("task01/src/main/resources/3727.mp3"))); - */ } public static String extractSoundName(File file) throws IOException, InterruptedException { - // your implementation here - return "sound name"; + String ffProbePath = "C:\\Users\\qwerty\\Desktop\\ffmpeg-2024-11-13-git-322b240cea-essentials_build\\bin\\ffprobe.exe"; + + ProcessBuilder processBuilder = new ProcessBuilder(ffProbePath, "-v", "error", "-of", "flat", "-show_format", file.getAbsolutePath()); + processBuilder.redirectErrorStream(true); + Process process = processBuilder.start(); + + return parseTitle(readProcessOutput(process)); + } + + private static String readProcessOutput(Process process) throws IOException { + String output = ""; + try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) { + String line; + while ((line = reader.readLine()) != null) { + output += line + "\n"; + } + } + return output; + } + + private static String parseTitle(String output) { + String titlePrefix = "format.tags.title="; + for (String line : output.split("\n")) { + if (line.contains(titlePrefix)) { + return line.substring(line.indexOf(titlePrefix) + titlePrefix.length()).replace("\"", "").trim(); + } + } + return "Название не найдено"; } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 750f7ba..5f78229 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -1,23 +1,23 @@ package com.example.task02; import java.io.IOException; +import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; +import java.util.ArrayList; import java.util.List; public class Task02Main { public static void main(String[] args) throws IOException, InterruptedException { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - - /* - System.out.println(listFiles(Paths.get("task02/src/main/resources/"))); - */ - + List files = listFiles(Paths.get("task02/src/main/resources/")); + files.forEach(file -> System.out.println(file.getFileName())); //по приколу вывел только имена файлов, не нравятся мне пути) } public static List listFiles(Path rootDir) throws IOException, InterruptedException { - // your implementation here - - return null; + List fileList = new ArrayList<>(); + Files.walk(rootDir) + .filter(Files::isRegularFile) + .forEach(fileList::add); + return fileList; } } diff --git a/task03/src/com/example/task03/SampleData.java b/task03/src/com/example/task03/SampleData.java index 0654af5..70bbc0b 100644 --- a/task03/src/com/example/task03/SampleData.java +++ b/task03/src/com/example/task03/SampleData.java @@ -1,9 +1,10 @@ package com.example.task03; +import java.io.Serializable; import java.util.Date; import java.util.Objects; -public class SampleData { +public class SampleData implements Serializable { static final long serialVersionUID = 132706691457162967L; String name; diff --git a/task03/src/com/example/task03/Task03Main.java b/task03/src/com/example/task03/Task03Main.java index 740fff1..da56e4c 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -2,20 +2,19 @@ import java.io.IOException; import java.io.InputStream; +import java.io.ObjectInputStream; +import java.io.FileInputStream; + public class Task03Main { public static void main(String[] args) throws IOException, ClassNotFoundException { - //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат - // например вот так: - - /* System.out.println(deserialize(new FileInputStream("task03/src/main/resources/example1.bin"))); - */ - + System.out.println(deserialize(new FileInputStream("task03/src/main/resources/example2.bin"))); } public static SampleData deserialize(InputStream inputStream) throws IOException, ClassNotFoundException { - // your implementation here - return null; + try (ObjectInputStream ois = new ObjectInputStream(inputStream)) { + return (SampleData) ois.readObject(); + } } }