El ejemplo de este artículo describe el método de fusión de mp3 en Java. Compártelo con todos para tu referencia. El método de implementación específico es el siguiente:
Copie el código de código de la siguiente manera:
prueba de paquete;
importar java.io.*;
importar java.util.*;
prueba de clase pública6
{
public static void main (String[] args) lanza una excepción
{
String s = "D:/out.mp3" // Directorio de salida y nombre de archivo
Lista<Cadena> lista = nueva ArrayList<Cadena>();
File dir = new File("D:/aaa"); // Directorio a recorrer, use la recursividad para obtener archivos. Si hay demasiados archivos, se terminará.
recursion(dir.listFiles(), lista); // Función recursiva
Cadena[] ss = nueva Cadena[lista.tamaño()];
para (int i = 0; i < ss.length; i++)
{
ss[i] = lista.get(i);
}
System.out.println();
combinar(s, ss);
}
public static void recursion(File[] fs, List<String> list) // Obtenga de forma recursiva archivos .mp3 en todos los subdirectorios.
{
para (Archivo f: fs)
{
si (f.isDirectory())
{
recursividad(f.listFiles(), lista);
}
demás
{
si (f.getName().endsWith(".mp3"))
{
lista.add(f.getAbsolutePath());
}
}
}
}
la combinación booleana estática privada (String outFile, String [] inFiles) arroja una excepción
{
Archivo de salida = nuevo archivo (outFile);
Archivo[] archivos = nuevo Archivo[inFiles.length];
para (int i = 0; i < archivos.longitud; i++)
{
archivos[i] = nuevo archivo(enArchivos[i]);
}
FileInputStream fis = nulo;
FileOutputStream fos = new FileOutputStream(outFile, true); // La fusión es en realidad la continuación del archivo, escrita como verdadera;
para (int i = 0; i < archivos.longitud; i++)
{
fis = nuevo FileInputStream(archivos[i]);
int longitud = 0;
for (byte[] buf = nuevo byte[1024 * 1024]; (len = fis.read(buf)) != -1;)
{
fos.write(buf, 0, len);
}
}
fis.cerrar();
fos.cerrar();
devolver verdadero;
}
}
Espero que este artículo sea útil para la programación Java de todos.