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.文件复制

    程序设计思路

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

    (三)代码托管

  • 相关阅读:
    Python+SparkStreaming+kafka+写入本地文件案例(可执行)
    Python安装pycurl失败,及解决办法
    Linux screen用法简介
    [算法]数组中求出下标不连续的任意个数,使得和最大
    消息队列小结
    [算法]计算全排列组合数
    [数据结构]A*寻路算法
    [数据结构]最大流之Ford-Fulkerson算法
    [数据结构]最小生成树算法Prim和Kruskal算法
    [数据结构]迪杰斯特拉(Dijkstra)算法
  • 原文地址:https://www.cnblogs.com/yamito/p/6893772.html
Copyright © 2011-2022 走看看