На примере этой статьи описан метод слияния mp3 в Java. Поделитесь этим со всеми для справки. Конкретный метод реализации заключается в следующем:
Скопируйте код кода следующим образом:
тест упаковки;
импортировать java.io.*;
импортировать java.util.*;
публичный класс Test6
{
public static void main(String[] args) выдает исключение
{
String s = "D:/out.mp3" // Выходной каталог и имя файла
List<String> list = новый ArrayList<String>();
File dir = new File("D:/aaa"); // Каталог, который нужно пройти, используйте рекурсию для получения файлов. Если файлов слишком много, все закончится.
recursion(dir.listFiles(), list); // Рекурсивная функция;
String[] ss = новая строка[list.size()];
for (int i = 0; i <ss.length; i++)
{
сс[я] = list.get(я);
}
Система.out.println();
объединить(-а, сс);
}
public static void recursion(File[] fs, List<String> list) // Рекурсивно получаем файлы .mp3 во всех подкаталогах.
{
для (Файл f: fs)
{
если (f.isDirectory())
{
рекурсия (f.listFiles(), список);
}
еще
{
если (f.getName().endsWith(".mp3"))
{
list.add(f.getAbsolutePath());
}
}
}
}
частное статическое логическое объединение (String outFile, String[] inFiles) выдает исключение
{
Выходной файл = новый файл (outFile);
Файл [] файлы = новый файл [inFiles.length];
for (int i = 0; я <files.length; i++)
{
файлы [i] = новый файл (inFiles [i]);
}
FileInputStream фис = ноль;
FileOutputStream fos = new FileOutputStream(outFile, true); // Слияние фактически является продолжением файла, записанного как true);
for (int i = 0; я <files.length; i++)
{
фис = новый FileInputStream (файлы [я]);
интервал лен = 0;
for (byte[] buf = новый байт[1024 * 1024]; (len = fis.read(buf)) != -1;)
{
fos.write(buf, 0, len);
}
}
фис.закрыть();
фос.закрыть();
вернуть истину;
}
}
Я надеюсь, что эта статья будет полезна каждому, кто занимается программированием на Java.