この記事の例では、Java で mp3 を結合する方法を説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです。
次のようにコードをコピーします。
パッケージテスト。
java.io.* をインポートします。
java.util.* をインポートします。
パブリッククラス Test6
{
public static void main(String[] args) は例外をスローします
{
String s = "D:/out.mp3"; // 出力ディレクトリとファイル名
List<String> list = new ArrayList<String>();
File dir = new File("D:/aaa"); // 走査するディレクトリ。ファイルの取得には再帰を使用します。ファイルが多すぎる場合は終了します。
recursion(dir.listFiles(), list); // 再帰関数
String[] ss = 新しい String[list.size()];
for (int i = 0; i < ss.length; i++)
{
ss[i] = list.get(i);
}
System.out.println();
(s, ss) を結合します。
}
public static void recursion(File[] fs, List<String> list) // すべてのサブディレクトリ内の .mp3 ファイルを再帰的に取得します。
{
for (ファイル f : fs)
{
if (f.isDirectory())
{
recursion(f.listFiles(), list);
}
それ以外
{
if (f.getName().endsWith(".mp3"))
{
list.add(f.getAbsolutePath());
}
}
}
}
private static boolean combin(String outFile, String[] inFiles) が例外をスローする
{
ファイル出力 = 新しいファイル(outFile);
ファイル[] ファイル = 新しいファイル[inFiles.length];
for (int i = 0; i < files.length; i++)
{
ファイル[i] = 新しいファイル(inFiles[i]);
}
FileInputStream fis = null;
FileOutputStream fos = new FileOutputStream(outFile, true); // マージは実際にはファイルの継続であり、true として記述されます。
for (int i = 0; i < files.length; i++)
{
fis = 新しい FileInputStream(files[i]);
int len = 0;
for (byte[] buf = new byte[1024 * 1024]; (len = fis.read(buf)) != -1;)
{
fos.write(buf, 0, len);
}
}
fis.close();
fos.close();
true を返します。
}
}
この記事が皆さんの Java プログラミングに役立つことを願っています。