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(); } }