A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 一世英明 中级黑马   /  2014-4-7 23:24  /  1526 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

问:  C盘文件夹下的某个文件,复制到  D盘下的文件夹下的文件!  使用流 实现!!  求论坛高手解答!!

4 个回复

正序浏览
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();
                        }
                }
               
        }
}

不知道这个符不符合要求

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
参见毕老师系列第18天
回复 使用道具 举报
首先通过 IO 流来完成的
1,指向源文件
BufferedReader bufr  = new BufferedReader(new FileReader("文件路径及名"));
2,目标文件
BufferedWriter bufw = new BufferedWriter(new FileWriter("目标文件路径"));
3,读取源文件
while((len=bufr.readLine())!=null)
{
    4,写入到指定位置
    bufw.writer(len);
}


OK 完事了

评分

参与人数 1技术分 +1 收起 理由
zzkang0206 + 1

查看全部评分

回复 使用道具 举报
...filereader读入,filewriter写出。他们问的都是些概念性的问题。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马