zoukankan      html  css  js  c++  java
  • java-IO流练习

    1.从键盘接收两个文件夹路径,把其中一个文件夹中(包含内容)拷贝到另一个文件夹中

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Scanner;
    
    public class DirCopyDemo {
    
    	public static void main(String[] args) throws IOException {
    		Scanner s = new Scanner(System.in);
    		System.out.println("输入源目录路径");
    		String s1 = s.nextLine();
    		System.out.println("输入目的目录路径");
    		String s2 = s.nextLine();
    		File from = new File(s1);
    		File to = new File(s2);
    		if(!to.exists()){
    			to.mkdirs();
    		}
    		CopyDir(from, to);
    	}
    
    	private static void CopyDir(File from, File to) throws IOException {
    		FileInputStream fis = null;
    		FileOutputStream fos = null;
    		File[] froms = from.listFiles();
    		int len=0;
    		byte[] wj = new byte[1024];
    		for (File f : froms) {
    			if (f.isDirectory()) {
    				// 如果是文件夹,需要在to中创建一个名称相同的文件夹,
    				// 然后再递归到该文件夹里面,复制相应的文件
    				// 对于创建的文件夹名称,需要获取到目的to绝对路径,然后加上f的名称
    				File newfile = new File(to.getAbsolutePath() + "\"
    						+ f.getName());
    				newfile.mkdirs();
    				// 此处就需要进入新建的文件夹内部进行递归
    				// 这样才能复制该文件夹内的文件
    				CopyDir(f, newfile);
    			} else {
    				// 在输出目的to的文件名称 需要先获取到f的文件名称 然后加上file2的绝对路径
    				 //这样就能创建一个名称相同的文件  
    				fis = new FileInputStream(f);
    				fos= new FileOutputStream(to.getAbsolutePath()+"\"+f.getName());
    				while ((len = fis.read(wj)) != -1) {
    					fos.write(wj, 0, len);
    					fos.flush();
    				}
    				fis.close();  
    	            fos.close();  
    			}
    		}
    	}
    
    }
    
  • 相关阅读:
    1648 最大和
    poj2243
    Codevs 2307[SDOI2009]HH的项链
    2597 团伙
    一个JavaWeb项目中使用的部分技术
    Oracle 11g 学习3——表空间操作
    iOS实现抽屉效果
    用shell脚本实现linux系统上wifi模式(STA和soft AP)的转换
    Codeforces Round #243 (Div. 1)——Sereja and Two Sequences
    站点选择配色诀窍
  • 原文地址:https://www.cnblogs.com/czy16/p/8322140.html
Copyright © 2011-2022 走看看