zoukankan      html  css  js  c++  java
  • Java第九次作业

    (一)学习总结

    原程序执行结果

    文件拷贝完成,耗时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毫秒
    

    个人理解

    • 上述的例子就好比在把一个坑里的沙子移动到另外一个坑里。
      第一种方法:把沙子一粒一粒地移向第二个坑,效率很低
      第二种方法:把沙子放满一个小桶随后再移到第二个坑,效率较高。
    • 数组byte就是移动沙子时使用到的小桶(缓冲区),所有的缓冲数据都储存在这个数组上;如果没有这个缓冲,必须再从输入流中按字节读取,时间效率将大大降低
    • 另外,由于一个汉字占用两个字节,所以为了避免造成乱码,数组的长度需要设置为偶数

    (二)实验总结

    1.宠物商店

    程序设计思路

    • vo包中新建SoldPet类,添加已销售的宠物的属性
    • tools包中新建FileUtils类,添加方法实现新建销售文件并保存已销售宠物
    • 修改普通用户界面的购买按钮监听器调用的购买方法,购买完毕后自动创建当天的销售记录

    在用户界面购买宠物

    本地销售记录储存

    2.文件复制

    程序设计思路

    • 用户输入源文件路径后判断文件是否存在
    • 源文件存在,继续输入目标路径,并在目标路径查重
    • 通过缓冲区实现文件的复制

    (三)代码托管

  • 相关阅读:
    1046 Shortest Distance (20 分)(模拟)
    1004. Counting Leaves (30)PAT甲级真题(bfs,dfs,树的遍历,层序遍历)
    1041 Be Unique (20 分)(hash散列)
    1036 Boys vs Girls (25 分)(查找元素)
    1035 Password (20 分)(字符串处理)
    1044 Shopping in Mars (25 分)(二分查找)
    onenote使用小Tip总结^_^(不断更新中...)
    1048 Find Coins (25 分)(hash)
    三个故事
    领导者的举止
  • 原文地址:https://www.cnblogs.com/yamito/p/6893772.html
Copyright © 2011-2022 走看看