Java 第九次作业

(一)学习总结###

1.思维导图###

2.BufferedInputStreamBufferedOutputStream的执行效率比较###

  • 采用的是一个字节一个字节的读写方式###

    • 文件拷贝完成,耗时1141毫秒
  • 带缓冲的字节流BufferedInputStreamBufferedOutputStream###

    • 文件拷贝完成,耗时15毫秒

    • 代码

import java.io.*;
public class Test {
    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);
            byte[] b = new byte[1024];
            int len = 0;
            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();
        }
    }
}
}

3.其他需要总结的内容###

  • 输入流和输出流

    • 输入流连在某个产生数据的设备上,从输入流中读取数据

    • 输出流连在某个接收数据的设备上,把结果写出到输出流中

  • 生成FileOutputStream对象时

    • 如果文件不存在,则创建该文件供程序输出数据

    • 如果文件已经存在,则有覆盖和附加两种输出数据的方式

    • 覆盖:原文件数据被丢弃,重新输出数据

    • 附加:在原文件末尾追加输出数据

(二)实验总结###

1.用文件保存交易信息记录###

  • 程序设计思路###

    • 第一步,创建WelcomeFrame界面,点进入系统按钮进入宠物商店管理界面

    • 第二步,创建PetItem宠物类存放宠物属性,GUITools类对于界面组件显示的方法

    • 第三步,创建JDBCUtils类负责数据库连接和关闭操作以及取得一个数据库的连接对象

    • 第四步,创建AdminDao类是管理员数据访问类,AdminService类是对AdminDao类中的方法进行判断,AdminDialog类是对宠物商店管理界面的按钮组件功能进行实现,MainApp是运行项目类

    • 第五步,创建FileUtils类保存销售信息

    • 第六步,创建SellPetItem类存放销售的宠物的信息属性

  • 完成的界面###

  • 保存的销售记录###

  • 类图结构###

  • 问题1###

    • 只能实现删除功能,不能实现添加功能
  • 原因###

    • 盲目的复制,导致某个变量没有改变标号
  • 问题2###

    • 按完进入系统键之后,程序就无法运行啦
  • 原因###

    • 更换数据库后,只改了JDBCUtils里的数据库名字,忘记改AdminDao里的数据库名字
  • 问题3###

    • 写购买方法时会出现语法错误
  • 原因###

    • 不知道怎么把int型的amount转换成String类型
  • 解决方案###

    • 不用pet.getAmount()而用String.valueOf(pet.getAmount())

2.文件复制###

  • 程序设计思路###

    • 采用字节流,采用边读边写的方式

    • 提示输入文件路径的提示,如果文件存在完成文件复制,否则提示操作失败

  • 程序运行结果###

  • 类图结构###

  • 问题1###

    • 程序运行错误,显示文件加载错误
  • 原因###

    • 我只输入```d:\java\
  • 解决方案###

    • 应该输入d:\java\he.jpg,he.jpg是文件复制之后的名字

(三)代码托管###

代码链接###

https://git.oschina.net/hebau_cs15/hebau-cs01GHJ.git

码云截图###

commit历史截图###

posted @ 2017-05-25 21:00  长长长长的街道  阅读(220)  评论(0编辑  收藏  举报