黑马程序员技术交流社区

标题: 分享一个拷贝文件的程序,自娱自乐 [打印本页]

作者: Robber    时间: 2016-2-19 20:08
标题: 分享一个拷贝文件的程序,自娱自乐
package cn.itcast_00_homework;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

import javax.imageio.stream.FileImageInputStream;

/*
*
*###20.18_IO流(拷贝文件)
* 在控制台录入文件的路径,将文件拷贝到当前项目下
*
* 1.键盘录入 , 接收数据   
* 2.字符串变成 file 对象  
* 3.判断   
*                 不存在  
*                         对不起 , 输入 路径 没有
*                 存在  
*                         目录: 对不起 ,不想目录  
*                         文件: 拷贝 一下 .
*/

public class Test {
        public static void main(String[] args) throws IOException {
                // 1.键盘录入 , 接收数据

                Scanner sc = new Scanner(System.in);
                System.out.println("请输入一个文件的路径: ");
                String path = sc.nextLine();
                System.out.println(path);
                System.out.println("请输入一个目的地路径: ");
                String destPath = sc.nextLine();
                // * 2.字符串变成 file 对象

                File file = new File(path);
                File dest = new File(destPath);

                // copyFile(file);
                copyFile(file, dest);

        }

        private static void copyFile(File file, File dest) throws IOException {

                // * 3.判断

                // * 不存在
                if (!file.exists()) {
                        System.out.println("对不起 , 输入文件并没有! ");
                        return;
                } else {

                        // * 存在
                        if (file.isDirectory()) {
                                // * 目录: 对不起 ,不想目录
                                System.out.println("对不起 , 不想拷你! ");
                                return;
                        } else {
                                // * 文件: 拷贝 一下 .
                                // 创建流
                                BufferedInputStream bis = new BufferedInputStream(
                                                new FileInputStream(file)); // 源路径
                                BufferedOutputStream bos = new BufferedOutputStream(
                                                new FileOutputStream(file.getName())); // 目的地
                                // 拷贝
                                byte[] b = new byte[1024];
                                int len;
                                while ((len = bis.read(b)) != -1) {
                                        bos.write(b, 0, len);
                                }
                                // 关闭
                                bis.close();
                                bos.close();
                                System.out.println("文件拷贝成功");
                        }

                }

        }

}







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2