当前位置 : 主页 > 编程语言 > c++ >

文件的读取(输入输出流)

来源:互联网 收集:自由互联 发布时间:2021-06-30
Test2.java package com.zhiyou100.homework;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class Test2 {public static void main(String[
Test2.java
package com.zhiyou100.homework;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class Test2 {

	public static void main(String[] args) {

		File f1 = new File("D:/JavaTest");
		
		File f2 = new File("D:/JavaTest2");
		
		if (!f2.exists()) {
			
			f2.mkdir();
		}
		
		copyFile(f1, f2);
	}

	// 把 f1 文件夹 复制到 f2 文件夹
	public static void copyFile(File f1, File f2) {
		
		File[] files = f1.listFiles();
		
		if (files != null) {
			
			for (File file : files) {

				// 新文件的保存路径
				String path = f2.getAbsolutePath() + "/" + file.getName();
				
				if (file.isFile()) {
					
					// 如果是文件,就直接复制
					try {
						FileInputStream fis = new FileInputStream(file);
						
						FileOutputStream fos = new FileOutputStream(path, true);
						
						int length = 0;
						
						byte[] bytes = new byte[1024];
						
						while ((length = fis.read(bytes)) != -1) {
							
							fos.write(bytes, 0, length);
						}
						
						fos.close();
						fis.close();
					} catch (FileNotFoundException e) {

						e.printStackTrace();
					} catch (IOException e) {

						e.printStackTrace();
					}
				}else if (file.isDirectory()) {
					
					// 如果是文件夹,就先创建,然后再把内容复制到新文件夹中
					// 先创建不存在的文件夹
					File directoryFile = new File(path);
					
					directoryFile.mkdir();
					
					// 把文件夹中的内容拷贝到新文件夹中
					copyFile(file, directoryFile);
				}
			}
		}
	}
}
网友评论