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("文件拷贝成功");
}
}
}
}
|
|