当前位置:编程学习 > JAVA >>

java对文件拷贝的简单操作

package fileInputStream;

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

import javax.swing.JOptionPane;

public class Test3 {

	/**
	 * @param args
	 *            实现功能: 将一个文件拷贝到指定路径中
	 */

	public static void copyFile(String url1, String url2) {

		// 获取指定的需要复制的文件
		File file1 = new File(url1);
		InputStream is = null;

		// 获取指定指向的复制路径
		File file2 = new File(url2);
		OutputStream os = null;
		File file3 = new File(file2, "2.txt");

		// 这里也可以对传入的路径进行一个判断,判断其是否有效,
		if (!file2.exists()) {
			System.out.println("路径不存在,是否进行创建");

			//提示用户
			int var = JOptionPane.showConfirmDialog(null, "指定文件路径不存在,是否将其创建??");

			if (var == 0) {
				file2.mkdirs();// 如果指定的路径不存在,那么就创建一个
				try {
					// 创建文件输入流的实体对象
					is = new FileInputStream(file1);
					// 创建文件输出流的实体对象
					os = new FileOutputStream(file3);

					// 创建缓冲区
					byte[] buffer = new byte[1024];
					// 创建判断实际读取长度的变量
					int len = 0;

					// 向缓冲区读入资源数据
					while ((len = is.read(buffer)) != -1) {
						// 从缓冲区向外输出资源数据
						os.write(buffer, 0, len);
						// flush() 是把缓冲区的数据强行输出
						os.flush();
					}

				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} finally {
					if (is != null) {
						try {
							// 关闭流资源
							is.close();
						} catch (IOException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}
					if (os != null) {
						try {
							// 关闭流资源?
							os.close();
						} catch (IOException e) {
							// TODO Auto-generated catch block
							e.printStackTrace();
						}
					}
				}
			}else{
				JOptionPane.showMessageDialog(null, "请重新选择路径!");
			}

		} else {
			try {
				// 创建文件输入流的实体对象
				is = new FileInputStream(file1);
				// 创建文件输出流的实体对象
				os = new FileOutputStream(file3);

				// 创建缓冲区
				byte[] buffer = new byte[1024];
				// 创建判断实际读取长度的变量
				int len = 0;

				// 向缓冲区读入资源数据
				while ((len = is.read(buffer)) != -1) {
					// 从缓冲区向外输出资源数据
					os.write(buffer, 0, len);
					// flush() 是把缓冲区的数据强行输出
					os.flush();
				}

			} catch (FileNotFoundException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} finally {
				if (is != null) {
					try {
						// 关闭流资源
						is.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
				if (os != null) {
					try {
						// 关闭流资源?
						os.close();
					} catch (IOException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		}

	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		// 定义指定要拷贝的文件
		String url1 = "F:\\test\\1.txt";
		// 定义指定的拷贝位置即文件名
		String url2 = "F:\\test\\aa\\bb\\c\\d";
		// 调用拷贝文件的方法,
		copyFile(url1, url2);

	}

}

 

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,