Java Android编程是否复制音频文件(mp3)?

Java Android编程是否复制音频文件(mp3)?,java,android,mp3,inputstream,outputstream,Java,Android,Mp3,Inputstream,Outputstream,我正在尝试创建一个mp3文件的副本。我需要修剪该mp3文件。因此,使用输入,输出流可以用于此,我想。普通文本文件类型的复制将能够创建一个可以播放的文件。熟悉java文件处理的人可以帮助我。mp3文件是二进制文件。所以只要您使用二进制文件操作复制MP3,复制就会成功 但是,要修剪MP3文件,您需要了解MP3文件的结构。MP3文件由一系列MP3帧组成。每一帧都以MP3头开始,然后是数据。MP3帧头包含信息,您可以使用这些信息查找帧长度 更多有关MP3头的详细信息,请访问 所以只要你以整数帧数复制,你

我正在尝试创建一个mp3文件的副本。我需要修剪该mp3文件。因此,使用输入,输出流可以用于此,我想。普通文本文件类型的复制将能够创建一个可以播放的文件。熟悉java文件处理的人可以帮助我。mp3文件是二进制文件。所以只要您使用二进制文件操作复制MP3,复制就会成功

但是,要修剪MP3文件,您需要了解MP3文件的结构。MP3文件由一系列MP3帧组成。每一帧都以MP3头开始,然后是数据。MP3帧头包含信息,您可以使用这些信息查找帧长度

更多有关MP3头的详细信息,请访问


所以只要你以整数帧数复制,你应该没事。即使在其他情况下,解码器也会忽略不完整的帧

下面的代码是复制mp3文件或其他所有内容的解决方案。我从未经历过修剪部分。但是,我认为从逻辑上讲,只需指定所需的缓冲区数量,就可以修剪文件。) 实际上,dst是目录中复制的文件的名称

private void copyFile(String src, String dst) {
    FileInputStream inputStream; // create an input stream
    FileOutputStream outputStream; // create an output stream
    try {
        inputStream = new FileInputStream(src); // create object
        outputStream = openFileOutput(dst, Context.MODE_PRIVATE); // save your file in private mode, which makes it inaccessible by other applications
        int bufferSize;
        byte[] bufffer = new byte[512]; // I think logically here could be useful for trimming the file. I mean just copy an specified part of the file.
        while ((bufferSize = inputStream.read(bufffer)) > 0) {
            outputStream.write(bufffer, 0, bufferSize);
        }
        inputStream.close();
        outputStream.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}
这是一个关于如何复制文件的建议,它将在应用程序包名称下的内部存储中复制这些文件。此外,我还没有测试装饰件。所以,我对此不确定

还有一件事,您可以通过

getFilesDir();