要求:在控制台录入一个文件的路径,将文件拷贝到当前项目下。
package com.io;
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;
public class Copy4 { //在控制台录入一个文件的路径,将文件拷贝到当前项目下
public static void main(String[] args) throws IOException {
File file=getFile(); //获取文件
BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file)); //读取文件
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(file.getName()));//获取文件名字,写到当前项目下
int b;
while((b=bis.read())!=-1) { //在不断地读取每一个字节
bos.write(b); //将每一个字节写出
}
bis.close(); //关流释放资源
bos.close();
}
// 定义一个方法,获取键盘录入的文件路径,并封装成File对象返回
// 返回值类型:File
public static File getFile() {
Scanner sc=new Scanner(System.in); //创建键盘录入对象
System.out.println("请录入一个文件路径:");
while(true) {
String line=sc.nextLine(); // 接收键盘录入的路径
File file=new File(line); //封装成File对象,对其进行判断
if(!file.exists()) {
System.out.println("您录入的文件路径不存在,请重新录入");
}else if(file.isDirectory()) {
System.out.println("你录入的是文件夹路径,请重新录入");
}else {
return file;
}
}
}
}