- package com.heima.test;
- 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 Test3_B {
- /**
- *
- *
- * B.在控制台录入文件的路径,将文件拷贝到当前项目下
- * 1.调用getFile()方法 得到文件对象
- * 2.创建标准输入流对象
- * 3.创建标准输出流对象
- * 4.while遍历文件 write()写出文件到目标路径 跳出条件为read()返回-1
- * 5.关流释放资源
- *
- * @throws IOException
- */
- public static void main(String[] args) throws IOException {
- File file = getFile(); //调用getFile()方法得到文件对象
- FileInputStream fis = new FileInputStream(file); //创建输入流对象
- FileOutputStream fos = new FileOutputStream(file.getName()); //创建输出流对象
-
- byte[] bys = new byte[1024 * 10]; //定义小数组
-
- int len;
- while((len = fis.read(bys)) != -1) { //read(bys)返回值是有效录入长度
- fos.write(bys,0,len); //写出有效长度个字节
- }
-
- fis.close(); //关流释放资源
- fos.close();
- System.out.println("恭喜复制成功了!");
- }
- /*
- * 定义方法getFile 判断录入的内容是否是文件
- * A.返回值类型File
- * B.参数列表void
- * 1.创建键盘录入对象
- * 2.定义字符串接收录入的内容
- * 3.将录入的路径封装成File对象
- * 4.调用方法 判断录入的内容是否是文件
- * 5.若是文件则 return 该文件对象 若不是则返回相对应的错误
- * */
- public static File getFile() {
- //1.创建键盘录入对象
- Scanner sc = new Scanner(System.in);
- System.out.println("请输入一个文件路径");
- //2.定义字符串接受录入的内容
- String line = sc.nextLine();
-
- File file = new File(line); //将路径封装成文件对象方便调用方法对其判断
- while(true) {
- if(!file.exists()) {
- System.out.println("输入的路径不存在,请重新输入!");
- }else if(file.isDirectory()) {
- System.out.println("输入的路径是文件夹,请重新输入!");
- }else {
- return file;
- }
- }
- }
- }
复制代码 |
|