黑马程序员技术交流社区
标题:
IO流输入一个文件路径将该文件复制到项目目录下
[打印本页]
作者:
xuxu5112
时间:
2015-9-19 00:13
标题:
IO流输入一个文件路径将该文件复制到项目目录下
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;
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2