黑马程序员技术交流社区
标题:
歌曲串烧java应用(把两首歌曲合并成一首歌曲,喜欢收藏哦)
[打印本页]
作者:
15820030540
时间:
2016-7-3 23:49
标题:
歌曲串烧java应用(把两首歌曲合并成一首歌曲,喜欢收藏哦)
在主方法中直接调用demo1()方法即可!
//主要功能方法
private static void demo1() throws IOException {
//定义用户录入两个歌曲文件
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个歌曲路径:");
File f1 = getFile(sc);
System.out.println("请输入第二个歌曲路径:");
File f2 = getFile(sc);
System.out.println("请输入输出路径,再加上文件名,中间用空格隔开:(格式:文件路径 文件名)");
File f3 = found(sc);
merge(f1,f2,f3);
}
//定义方法把两首歌曲合并成一首,并输出到指定文件夹中
public static void merge(File f1,File f2,File f3) throws IOException{
SequenceInputStream sis = new SequenceInputStream(new FileInputStream(f1),new FileInputStream(f2)); //创建序列流
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(f3));
int n;
while((n=sis.read())!=-1){
bos.write(n);
}
sis.close();
bos.close();
System.out.println("转换成功!");
}
//创建输出路径
public static File found(Scanner sc) throws IOException{
String str = sc.nextLine();
String[] s = str.split(" ");
File f1 = new File(s[0]);
if(!f1.exists()){
f1.mkdirs();
}
File f2 = new File(s[0],s[1]);
if(!f2.exists()){
f2.createNewFile();
}
return f2;
}
//获取第一个歌曲文件路径
public static File getFile(Scanner sc){
while(true){
File file = new File(sc.nextLine());
if(!file.exists()){
System.out.println("输入的文件不存在,请重新输入:");
}else if(file.isDirectory()){
System.out.println("输入的是文件夹,请重新输入:");
}else{
return file;
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2