JAVA拷贝视频文件无法播放的解决方法

java流分为两种流:

1、字节流:可以用于读写二进制文件及任何文件 byte

2、字符流:可以用于读写文本文件,不能操作二进制文件

因此拷贝视频文件必须用字节流操作。

//二进制文件方法
    private static void copyFile(String src,String dest){

        //1.提供读入和写入的文件
        File f1=new File(src);
        File f2=new File(dest);
        //2.提供相应的流对象
        FileInputStream fis=null;
        FileOutputStream fos=null;
        try{
            fis=new FileInputStream(f1);
            fos=new FileOutputStream(f2);
            //3.实现复制
            byte[]b=new byte[200];
            int len;
            while((len=fis.read(b))!=-1){
                fos.write(b, 0, len);
            }    
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            if(fis!=null){
                try {
                    //关闭输入流
                    fis.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            if(fos!=null){
                try {
                    //关闭输出流
                    fos.close();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        }


    //文本文件拷贝方法
    private static void fileCopy(String src, String des) {  
      
        //字符型处理流
        BufferedReader br=null;  
        PrintStream ps=null;  
          
        try {  
            //输入与输出流
            br=new BufferedReader(new InputStreamReader(new FileInputStream(src)));  
            ps=new PrintStream(new FileOutputStream(des));  
            String s=null;  
            while((s=br.readLine())!=null){  
                ps.println(s);  
                ps.flush();  
            }  
              
        } catch (FileNotFoundException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        } catch (IOException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }finally{  
                try {  
                    //关闭输入输出流
                    if(br!=null)  br.close();  
                    if(ps!=null)  ps.close();  
                } catch (IOException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
        }