Java 流(Stre am)、文件(File)和IO

打鱼网站 http://www.tjhthr.co 评论

自己写了一个简单的小程序用来剪辑特定长度的音频,并将它们混剪在一起,大体思路是这样的: 1. 使用 FileInputStream 输入两个音频 2. 使用 FileInputStream的skip(long n) 方法跳过特定字节长度的音频文件,比如说:输入 skip(1024*1024*3),这样就能丢

自己写了一个简单的小程序用来剪辑特定长度的音频,并将它们混剪在一起,大体思路是这样的:

1. 使用 FileInputStream 输入两个音频

2. 使用 FileInputStream的skip(long n) 方法跳过特定字节长度的音频文件,比如说:输入 skip(1024*1024*3),这样就能丢弃掉音频文件前面的 3MB 的内容。

3. 截取中间特定长度的音频文件:每次输入 8KB 的内容,使用 count 记录输入次数,达到设置的次数就终止音频输入。比如说要截取 2MB 的音频,每次往输入流中输入 8KB 的内容,就要输入 1024*2/8 次。

4. 往同一个输出流 FileOutputStream 中输出音频,并生成文件,实现音频混合。

音乐素材下载: Download

下面就给出相关代码:

public class MusicCompound {     public static void main(String args[])     {         FileOutputStream fileOutputStream = null;         FileInputStream fileInputStream = null;         String fileNames[] = {"E:/星月神话.mp3","E:/我只在乎你.mp3"};         //设置byte数组,每次往输出流中传入8K的内容         byte by[] = new byte[1024*8];         try         {             fileOutputStream = new FileOutputStream("E:/合并.mp3");             for(int i=0;i<2;i++)             {                 int count = 0;                 fileInputStream = new FileInputStream(fileNames[i]);                 //跳过前面3M的歌曲内容                 fileInputStream.skip(1024*1024*3);                 while(fileInputStream.read(by) != -1)                 {                                         fileOutputStream.write(by);                     count++;                     System.out.println(count);                     //要截取中间2MB的内容,每次输入8k的内容,所以输入的次数是1024*2/8                     if(count == (1024*2/8))                     {                         break;                     }                 }             }         }         catch(FileNotFoundException e)         {             e.printStackTrace();         }         catch(IOException e)         {             e.printStackTrace();         }         finally         {             try             {                 //输出完成后关闭输入输出流                 fileInputStream.close();                 fileOutputStream.close();             }             catch(IOException e)             {                 e.printStackTrace();             }         }     } }

童帅的二叔

120***7857@qq.com

1年前 (2018-07-11)

#4

乔乔

287***2758@qq.com

有时需要列出目录下指定类型的文件,例如:. java、. txt 等扩展名的文件。可以使用File类的下述两个方法,列出指定类型的文件:

1、public String[ ] list(FilenameFilter obj) 该方法用字符串的形式返回目录下的指定类型的所有文件

2、public File[ ] listFile(FilenameFilter obj) 该方法用 File 对象形式返回目录下的指定类型的所有文件

上述两个方法的参数 FilenameFilter 是一个接口,该接口有一个方法:

public boolean accept(File f,String name);

Java 流(Stre am)、文件(File)和IO

极速飞车_体彩排列五:Java 流(Stre am)、文件(File)和IO

喜欢 (0) or 分享 (0)
发表我的评论
取消评论

表情

您的回复是我们的动力!

  • 昵称 (必填)

网友最新评论