通过IO流创建文件然后 通过io流拷贝文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了通过IO流创建文件然后 通过io流拷贝文件相关的知识,希望对你有一定的参考价值。

各种语言一般都有IO相关的操作,至于IO流如何操作 不同的语言 都不会相同,以c++来说,可以用fstream、iostream等来完成,一般都是标准库文件,自己可以查阅标准说明的。 参考技术A 参考以下博文:
http://blog.csdn.net/hahawhyha/article/details/12857849

IO流 文件夹的拷贝(字节流)

 

文件夹拷贝

技术图片

技术图片

 

package cn.Reader;

import java.io.File;
import java.io.IOException;

/*
 * 文件夹的拷贝
 * 1.文件复制  Copyfile
 * 2.文件夹创建 mkdirs()
 * 3.递归查找子孙级
 */
public class CopyDir 
    public static void main(String [] args) 
        String srcPath="C:/Users/Administrator/Desktop/sun/JAVA  project";
        //目标目录
        String destPath="C:/Users/Administrator/Desktop/sun/haha";
        CopyDir(srcPath,destPath);
        
    
    /*
     * 拷贝文件夹
     * src 源路径
     * dest 目标路径
     */
    public static void CopyDir(String srcPath,String destPath) 
        File src=new File(srcPath);
        File dest=new File(destPath);
        CopyDir(src,dest);
        
    
    
    
    
    
    //拷贝文件夹细节
    public static void CopyDir(File src,File dest) 
        if(src.isFile())   //文件
            try 
                FileUtil.CopyFiles(src, dest);
             catch (IOException e) 
                // TODO Auto-generated catch block
                e.printStackTrace();
            
            
        
        else if(src.isDirectory())   //文件夹
            //确保目标文件夹存在
             dest.mkdirs();
             //获取下一级的目录或者文件
             for(File sub:src.listFiles())                               //递归遍历子孙级
                 CopyDir(sub,new File(dest,sub.getName()));
             
        
    

文件夹及文件拷贝封装

package cn.Reader;
/*
 * 文件操作
 * 1.文件拷贝
 * 2.文件夹拷贝
 */
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

public class FileUtil 
    /*
     * 拷贝文件夹
     * src 源路径
     * dest 目标路径
     */
    public static void CopyDir(String srcPath,String destPath) 
        File src=new File(srcPath);
        File dest=new File(destPath);
        CopyDir(src,dest);
        
    
    
    
    
    
    //拷贝文件夹细节
    public static void CopyDir(File src,File dest) 
        if(src.isFile())   //文件
            try 
                FileUtil.CopyFiles(src, dest);
             catch (IOException e) 
                // TODO Auto-generated catch block
                e.printStackTrace();
            
            
        
        else if(src.isDirectory())   //文件夹
            //确保目标文件夹存在
             dest.mkdirs();
             //获取下一级的目录或者文件
             for(File sub:src.listFiles())                               //递归遍历子孙级
                 CopyDir(sub,new File(dest,sub.getName()));
             
        
    
    public static void CopyFiles(String srcPath,String destPath ) throws IOException 
        CopyFiles(new File(srcPath),new File(srcPath));
    
     
    //对该方法进行重载
    
    public static void CopyFiles(File  src,File dest ) throws IOException 
        if(!src.isFile())    //不是文件或者为null
            System.out.println("只能拷贝文件");
            throw new IOException("只能拷贝文件");
        

        
        //2.选择流
        InputStream  is =new FileInputStream(src);
        OutputStream os=new FileOutputStream(dest);
        //3.文件拷贝 循环 读取+写出
        byte[] flush=new byte[1024];
        int len=0; 
        //读取
        while(-1!=(len=is.read(flush)))
            //写出
            os.write(flush, 0, len); 
        
        os.flush();  //强制刷出
        //关闭两个流 
        os.close();  //后打开的先关闭
        is.close();
        
    
    public static void main(String[] args) 
        File src=new File("C:/Users/Administrator/Pictures/Saved Pictures/a.jpg");
        File dest =new File("C:/Users/Administrator/Pictures/Saved Pictures/180.jpg");
        try 
            CopyFiles(src,dest);
         catch (IOException e) 
            // TODO Auto-generated catch block
            e.printStackTrace();
        
    

 

以上是关于通过IO流创建文件然后 通过io流拷贝文件的主要内容,如果未能解决你的问题,请参考以下文章

IO流 文件夹的拷贝(字节流)

简单IO流应用之文件目录拷贝

IO流录入数据拷贝到文件。

Java--IO流;File类;文件目录拷贝;序列化与反序列化;Properties

利用文件的输入流输出流实现文件的拷贝

java IO流文件拷贝文件(字符流标准写法)