java第九次作业 计科1501班 张鹏

计科1501班 张鹏


1.用思维导图对javaIO操作的学习内容进行总结。


2.下面的程序实现了文件的拷贝,但采用的是一个字节一个字节的读写方式,效率很低。使用缓冲区可以减少对文件的操作次数,从而提高读写数据的效率。IO包中提供了两个带缓冲的字节流BufferedInputStream和BufferedOutputStream,查阅JDK帮助文档,修改程序,利用这两个类完成文件拷贝,对比执行效率。
原程序执行结果

文件拷贝完成,耗时233毫秒

修改后的程序为

import java.io.*;
public class Demo{
    public static void main(String args[]) {
        FileInputStream in=null;
        FileOutputStream out=null;
        File fSource=new File("d:"+File.separator+"my.jpg");
        File fDest=new File("d:"+File.separator+"java"+File.separator+"my.jpg");
        if(!fSource.exists()){ 
            System.out.println("源文件不存在");   
            System.exit(1);   
        }
        if(!fDest.getParentFile().exists()){   
            fDest.getParentFile().mkdirs();     
        }
        try {   
            in=new FileInputStream(fSource);
            out=new FileOutputStream(fDest);
            int len=0;
            byte[] b = new byte[1024];        //添加byte数组作为缓冲区
            long begintime = System.currentTimeMillis();
            while((len=in.read(b))!=-1){
                out.write(b,0,len);          
            } 
            long endtime = System.currentTimeMillis();
            System.out.println("文件拷贝完成,耗时"
                        +(endtime-begintime)+"毫秒");
        }catch(Exception e){
            System.out.println("文件操作失败");  
        }finally{       
            try {   
                in.close();   
                out.close();
            } catch (IOException e) {
                e.printStackTrace();
            }      
        }     
    }
}

修改后的执行结果

文件拷贝完成,耗时0毫秒

(二)实验总结

一,宠物商店
程序设计思路
vo包中新建SellPetItem类,添加已销售的宠物的属性
tools包中新建FileUtils类,添加方法实现新建销售文件并保存已销售宠物
修改普通用户界面的购买按钮监听器调用的购买方法,购买完毕后自动创建当天的销售记录
最后在用户界面购买宠物


二,完成文件复制操作,在程序运行后,提示输入源文件路径和目标文件路径。
(1)用户输入源文件路径后判断文件是否存在。
(2)如果源文件存在的话,继续输入目标路径,并在目标路径查重。
(3)通过缓冲区实现文件的复制操作。


(三)代码托管

posted on 2017-05-24 20:53  雯水声  阅读(157)  评论(0编辑  收藏  举报