zoukankan      html  css  js  c++  java
  • Java IO技术之字节流复制

    package j2se.core.io.buffer.Stream;  //包名,若是直接复制得注意包名
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /*
     * 复制数据!
     */
    public class Demo2 {
    
    	public static void main(String[] args) {
    		
    //		创建源文件地址和目标文件地址
    		String source = "assert/狠狠.mp3";  //换为自己的路径,这个是相对路径
    		String desc = "E:/assert/狠狠.mp3"; //这个是绝对路径
    		
    //		创建关联类
    		File sourceFile = new File(source);
    		File descFile = new File(desc);
    		
    //		判断该目录是否存在
    		if(!descFile.getParentFile().exists()){
    			descFile.getParentFile().mkdir();
    			System.out.print("该目录不存在,并且已经创建!");
    		}else {
    			System.out.print("该目录已经存在,无需创建!");
    		}
    		
    		FileInputStream in = null;
    		FileOutputStream out = null;
    //		创建两个字节流
    		try {
    			
    //				要把FileInputStream提到外面
    //				FileInputStream in = new FileInputStream(sourceFile);
    //				FileOutputStream out = new FileOutputStream(descFile);
    				in = new FileInputStream(sourceFile);
    				out = new FileOutputStream(descFile);
    				
    //			定义容器来装数据
    				byte[] bytes = new byte[1024];
    				int len = -1;
    				System.out.println("复制数据开始...");
    				
    //			对数据进行读写
    				while((len = in.read(bytes, 0, bytes.length)) != -1){
    					out.write(bytes,0,len);
    					System.out.println("数据拷贝中...");
    				}
    				System.out.println("复制数据结束!");
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally{
    		try {
    			in.close();
    			out.close();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
      }
    }
    

      下面还有一种是用了buffer包装流,提高效率,先想想如何实现再看源码!

    package j2se.core.io.buffer.Stream;
    
    import java.io.BufferedInputStream;
    import java.io.BufferedOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    
    /*
     * 复制数据!Buffer包装流!
     */
    public class Demo3 {
    
    	public static void main(String[] args) {
    		
    //		创建源文件地址和目标文件地址
    		String source = "assert/狠狠.mp3";
    		String desc = "E:/assert/狠狠.mp3";
    		
    //		创建关联类
    		File sourceFile = new File(source);
    		File descFile = new File(desc);
    		
    //		判断该目录是否存在
    		if(!descFile.getParentFile().exists()){
    			descFile.getParentFile().mkdir();
    			System.out.print("该目录不存在,并且已经创建!");
    		}else {
    			System.out.print("该目录已经存在,无需创建!");
    		}
    		
    		BufferedInputStream in = null;
    		BufferedOutputStream out = null;
    //		创建两个字节流
    		try {
    			
    //				要把FileInputStream提到外面
    //				FileInputStream in = new FileInputStream(sourceFile);
    //				FileOutputStream out = new FileOutputStream(descFile);
    				in = new BufferedInputStream(new FileInputStream(sourceFile)) ;
    				out = new BufferedOutputStream(new FileOutputStream(descFile)) ;
    				
    //			定义容器来装数据
    				byte[] bytes = new byte[1024];
    				int len = -1;
    				System.out.println("复制数据开始...");
    				
    //			对数据进行读写
    				while((len = in.read(bytes, 0, bytes.length)) != -1){
    					out.write(bytes,0,len);
    					System.out.println("数据拷贝中...");
    				}
    				System.out.println("复制数据结束!");
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}finally{
    		try {
    			in.close();
    			out.close();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
      }
    }
    

      

  • 相关阅读:
    python--进程
    python---多线程
    python--上下文管理器
    python中的单例模式
    装饰器
    匿名函数
    python的内置方法
    命名元组
    如何管理我们的项目环境
    启动APP遇到“UiAutomator exited unexpectedly with code 0, signal null”解决
  • 原文地址:https://www.cnblogs.com/wajueji/p/5939166.html
Copyright © 2011-2022 走看看