diff --git a/task01/src/com/example/task01/Task01Main.java b/task01/src/com/example/task01/Task01Main.java index 5dfc11b0..13b30c8f 100644 --- a/task01/src/com/example/task01/Task01Main.java +++ b/task01/src/com/example/task01/Task01Main.java @@ -2,19 +2,33 @@ import java.io.File; import java.io.IOException; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.util.stream.Collectors; public class Task01Main { public static void main(String[] args) throws IOException, InterruptedException { //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат // например вот так: - /* 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"; + ProcessBuilder processBuilder = new ProcessBuilder("ffprobe", "-v", "error", "-of", "flat", "-show_format", file.getAbsolutePath()) + .redirectOutput(ProcessBuilder.Redirect.PIPE); + Process process = processBuilder.start(); + + String title = "format.tags.title"; + String soundName = ""; + try (BufferedReader reader = new BufferedReader( + new InputStreamReader(process.getInputStream()))){ + soundName = reader.lines() + .filter(p -> p.contains(title)) + .findFirst() + .map(x -> x.substring(title.length() + 2, x.length() - 1)) + .orElse(""); // Используйте orElse для предотвращения NoSuchElementException + } + return soundName; } } diff --git a/task02/src/com/example/task02/Task02Main.java b/task02/src/com/example/task02/Task02Main.java index 750f7bab..ba1bbdc4 100644 --- a/task02/src/com/example/task02/Task02Main.java +++ b/task02/src/com/example/task02/Task02Main.java @@ -1,23 +1,30 @@ package com.example.task02; +import java.io.File; import java.io.IOException; import java.nio.file.Path; -import java.util.List; +import java.nio.file.Paths; +import java.util.*; public class Task02Main { public static void main(String[] args) throws IOException, InterruptedException { //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат // например вот так: - /* System.out.println(listFiles(Paths.get("task02/src/main/resources/"))); - */ } public static List listFiles(Path rootDir) throws IOException, InterruptedException { - // your implementation here - - return null; + List paths = new ArrayList(); + for (File file : Objects.requireNonNull(rootDir.toFile().listFiles())) { + if (file.isDirectory()){ + paths.addAll(listFiles(file.toPath())); + } + else{ + paths.add(file.toPath()); + } + } + return paths; } } diff --git a/task03/src/com/example/task03/SampleData.java b/task03/src/com/example/task03/SampleData.java index 0654af50..379fbfc7 100644 --- a/task03/src/com/example/task03/SampleData.java +++ b/task03/src/com/example/task03/SampleData.java @@ -2,8 +2,9 @@ import java.util.Date; import java.util.Objects; +import java.io.Serializable; -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 740fff14..e9fef721 100644 --- a/task03/src/com/example/task03/Task03Main.java +++ b/task03/src/com/example/task03/Task03Main.java @@ -1,21 +1,22 @@ package com.example.task03; +import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; +import java.io.ObjectInputStream; public class Task03Main { public static void main(String[] args) throws IOException, ClassNotFoundException { //здесь вы можете вручную протестировать ваше решение, вызывая реализуемый метод и смотря результат // например вот так: - /* System.out.println(deserialize(new FileInputStream("task03/src/main/resources/example1.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(); + } } }