面试题,使用流的方式复制文件

来源:互联网 发布:美版a1453支持什么网络 编辑:程序博客网 时间:2024/05/22 14:42

问:  C盘文件夹下的某个文件,复制到  D盘下的文件夹下的文件!  使用流 实现!

package demo;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.InputStream;import java.util.Scanner;public class Copy {public static void main(String args[]){/*输入源文件路径*/System.out.println("请输入源文件路径(如c:\1.txt)");Scanner s = new Scanner(System.in);String src = s.nextLine();System.out.println("源文件路径确认"+src);/*输入目标路径*/System.out.println("请输入目标路径");String dest = s.nextLine();System.out.println("目标路径确认"+dest);s.close();/*拷贝*/try{copy(src,dest);/*显示是否成功*/System.out.println("拷贝完成");}catch(Exception e){System.out.println("拷贝过程出错");System.out.println(e.getMessage());}} private static void copy(String src,String dest) throws Exception{InputStream is = readFile(src);writeToFile(is,dest);}private static InputStream readFile(String src) throws Exception{if(!existFile(src)){throw new Exception("源文件不存在");}FileInputStream fis = new FileInputStream(src);return fis;}private static boolean existFile(String src) throws Exception{File f = new File(src);if(f.exists()){return true;}else{return false;}}private static void writeToFile(InputStream is,String dest) throws Exception{if(!existFile(dest)){File f = new File(dest);f.createNewFile();}FileOutputStream fos = new FileOutputStream(dest);inToOut(is,fos);}private static void inToOut(InputStream is,FileOutputStream fos) throws Exception{try{int len = 0;byte buffer[] = new byte[1024];while((len=is.read(buffer))>0){fos.write(buffer,0,len);}}catch(Exception e){System.out.println("拷贝失败");System.out.println(e.getMessage());}finally{if(is!=null){is.close();}if(fos!=null){fos.close();}}}}


0 0
原创粉丝点击