java把这段代码不写死问题出现在哪儿

首先这是写死的代码 ... 生成的mp3文件是可以播放的

        File file = new File(dir + "cing2.wav");
        File file2 = new File(dir + "a.wav");
        execute(file,  "f://111.mp3");
        execute(file2,  "f://222.mp3");

        File file3 = new File("f://111.mp3");
        File file4 = new File("f://222.mp3");
        InputStream is1 = new FileInputStream(file3) ;
        InputStream is2 = new FileInputStream(file4) ;

        OutputStream os = new FileOutputStream("f:/1.mp3") ;
        byte[]b1=new byte[128];
        byte[]b2=new byte[128];
        int len1 =0;
        int len2 =0;
        int index = 0;
        while((len1 = is1.read(b1))!=-1){
            index++;
            if(index==1){
                continue ;
            }
            os.write(b1, 0, len1 ) ;
        }
        index=0;
        while((len2 = is2.read(b2))!=-1){
            index++ ;
            os.write(b2, 0, len2 ) ;
        }
        is1.close();
        is2.close();
        os.flush();
        os.close() ;

这里是我把他写成 动态循环的代码

    OutputStream os = new FileOutputStream("f://k.mp3") ;
        byte[]b1=new byte[128];
        int len1 =0;
        int index = 0;
        for(int i = 0; i<listArr.size();i++){

            System.out.println(listArr.get(i));
            execute(new File(dir + listArr.get(i)),  "f://"+i+".mp3");


            InputStream is  = new FileInputStream(new File(dir + listArr.get(i)));
            while((len1 = is.read(b1))!=-1){
                index++;
                if(index==1){
                    continue ;
                }
                os.write(b1, 0, len1 ) ;
            }

        }

生成合并的mp3 却整整大了几倍,而且不能播放,是什么原因呢

阅读 2.5k
1 个回答
        OutputStream osv = new FileOutputStream("f://file//k.mp3") ;

        for(int i = 0; i<listArr.size();i++){
            System.out.println(dir + listArr.get(i));
            execute(new File(dir + listArr.get(i)),  data_dir+i+".mp3");
            InputStream is  = new FileInputStream(new File(data_dir+i+".mp3"));
            byte[]bytes=new byte[128];
            int lens =0;
            int indexs = 0;
            while((lens = is.read(bytes))!=-1){
                indexs++;
                if(indexs==1){
                    continue ;
                }
                osv.write(bytes, 0, lens ) ;
            }

        }

已解决

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题