Java复习 Io流实现文件夹及文件的拷贝

分析:

首先要在目标目标下创建一个与源文件夹名称相同的文件夹

遍历源文件夹下的所有对象文件,判断是目录还是文件

如果是目录,利用递归调用第一步的操作

如果是文件,用缓冲流文件字节流完成对文件的复制

代码实现:

实现对文件的复制
public static void copyFile(String isFile, String osFile) {
			
			InputStream is = null;
			OutputStream os = null;
			try {
				is = new FileInputStream(isFile);
				os = new FileOutputStream(osFile);
				byte[] data = new byte[1024];//缓存容器
				int len =-1;//接收长度
				while((len=is.read(data))!=-1) {
					os.write(data, 0, len);
				}
			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}catch(IOException e) {
				e.printStackTrace();
			}finally {
			//	释放资源 分别关闭 先打开的后关闭
					try {
						if(null!=os) {
						os.close();
						}
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					
				}
					try {
						if(null!=is) {
						is.close();
						}
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					
				}
			}
		}
实现对目录的复制
在复制目录的过程中判断源文件下所有文件对象是否为目录,是的话则利用递归调用自己复制目录
如果是文件的话,则调用copyFile方法复制文件
public static void copyDir(String srcPath,String destPath) {
			File src = new File(srcPath);//源头
			File dest = new File(destPath);//目的地
			//判断是否为目录,不存在则不作操作
			if(!src.isDirectory()) {
				return;
			}
			//判断目的地目录是否存在,不存在就创建目录
			if(!dest.exists()) {
				dest.mkdir();
			}
			//获取源头目录下的文件列表,每个对象代表一个目录或者文件
			File[] srcList = src.listFiles();
			//遍历源头目录下的文件列表
			for(int i=0;i
最后在main方法中调用copyDir方法
public static void main(String[] args) {
			copyDir("src/com/liu/Io", "test");
		}

 

你可能感兴趣的:(java)