黑马程序员技术交流社区

标题: 歌曲串烧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