博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA第九次作业
阅读量:5071 次
发布时间:2019-06-12

本文共 3887 字,大约阅读时间需要 12 分钟。

《Java技术》第九次作业

(一)学习总结

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

  • 参考资料: XMind。

1080214-20170521215242088-1612472972.png

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

public BufferedInputStream(InputStream in)

创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。创建一个内部缓冲区数组并将其存储在 buf 中。
参数:
in - 底层输入流。

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);            int len=0;            long begintime = System.currentTimeMillis();            while((len=in.read())!=-1){                out.write(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();            }              }         }}

1080214-20170522092302882-1594966731.png

public BufferedOutputStream(OutputStream out)

创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
参数:
out - 底层输出流。

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[] buff=new byte[1024];                int len=0;                long begintime = System.currentTimeMillis();                while((len=in.read(buff))!=-1){                              out.write(buff,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();                }                  }             }    }

1080214-20170522092335320-1571342775.png

(二)实验总结

1.实验内容:

(1).宠物商店:在实验八的基础上,增加一个功能,用文件保存每日的交易信息记录。
(2).完成文件复制操作,在程序运行后,提示输入源文件路径和目标文件路径。
完成实验内容,代码上传到码云,注意,宠物商店要求务必将创建数据库的脚本文件随项目文件一起上传,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程中遇到的问题、解决方案和思考等进行归纳总结,注意代码中必须有必要的注释。

  • 程序设计思路:新建SellPetItem类,存储用户购买信息,新建FileUtils类将用户购买信息存储到本地文件中,如果存在文件,采用修改文件的方式,如果不存在文件,采用新建文件的方式。
  • 类图结构:
    1080214-20170521231429900-22891108.png
  • 实验问题分析:

    问题1:在写购买方法时,出现“未对参数类型String,int定义运算符”错误
    原因:此时,PetItem类里的getNum方法是String类型的,而同它比较大小的num为int类型的。

    PetItem Pet = adminService.queryData(number);  if(Pet.getNum() < num){                      JOptionPane.showMessageDialog(this, "现货没有这么多了。请重新输入");                      buyNumText.setText("");                      buyNumText.requestFocus();                            }

    解决方案:将PetItem类里的getNum方法改为int类型的。

(三)

  • 码云commit历史截图
    1080214-20170522201005945-534059415.png

转载于:https://www.cnblogs.com/jianghui111/p/6891181.html

你可能感兴趣的文章
网络层block,delegate之优劣分析
查看>>
linux一步一脚印---cp命令
查看>>
YAHOO工具库提供的方法[转贴]
查看>>
[BZOJ4373]算术天才⑨与等差数列
查看>>
/浮点数的比较
查看>>
P1196 [NOI2002]银河英雄传说
查看>>
ORACLE查询删除重复记录三种方法
查看>>
20145120 《Java程序设计》实验三实验报告
查看>>
知乎TensorFlow入门学习记录
查看>>
工厂方法模式
查看>>
android 发现了以元素'd:skin'开头的无效内容
查看>>
HDU 1018 Big Number
查看>>
3、CentOS 6.5系统安装配置Tomcat 8详细过程
查看>>
Spring Boot:Spring Boot 中 Redis 的使用
查看>>
%s %d %f 等等是什么意思
查看>>
无人值守安装linux系统
查看>>
F# 的血继限界(2)
查看>>
【传道】中国首部淘宝卖家演讲公开课:农业本该如此
查看>>
jQuery应用 代码片段
查看>>
MVC+Servlet+mysql+jsp读取数据库信息
查看>>