java语言——IO流 在控制台录入一个文件的路径,将文件拷贝到当前项目下

要求:在控制台录入一个文件的路径,将文件拷贝到当前项目下。

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;
            }
      }
}
}

猜你喜欢

转载自blog.csdn.net/Mr_Ycy/article/details/81668858