1.用思惟导图对javaIO操做的学习内容进行总结。java
2.下面的程序实现了文件的拷贝,但采用的是一个字节一个字节的读写方式,效率很低。使用缓冲区能够减小对文件的操做次数,从而提升读写数据的效率。IO包中提供了两个带缓冲的字节流BufferedInputStream和BufferedOutputStream,查阅JDK帮助文档,修改程序,利用这两个类完成文件拷贝,对比执行效率。git
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(); } } } }
用BufferedInputStream和BufferedOutputStream方法正则表达式
import java.io.*; public class Test{ public static void main(String args[]) { BufferedInputStream in=null; BufferedOutputStream out=null; try { BufferedInputStream fSource =new BufferedInputStream(new FileInputStream("d:"+File.separator+"my.jpg")); BufferedOutputStream fDest=new BufferedOutputStream(new FileOutputStream("d:"+File.separator+"java"+File.separator+"my.jpg")); in=new BufferedInputStream(fSource); out=new BufferedOutputStream(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(); } } }
}数据库
对比设计模式
实验内容:
1.宠物商店:在实验八的基础上,增长一个功能,用文件保存每日的交易信息记录。数组
完成实验内容,代码上传到码云,注意,宠物商店要求务必将建立数据库的脚本文件随项目文件一块儿上传,在随笔中分析程序设计思路,用PowerDesigner画出类图结构,并对完成实验内容过程当中遇到的问题、解决方案和思考等进行概括总结,注意代码中必须有必要的注释。
格式以下:函数
程序设计思路:
一、先设计一个PetItem类,包含number、name、age、cno、price属性,并写出get、set方法。设计一个Administrator类,包含name、mi属性,并写出get、set方法,编写一个验证方法。设计一个SellPetItem类,包含number、name、price、amount、money属性,并写出get、set方法。
二、设计一个JDBC类,方便AdminDao类往数据库添加数据。
三、设计数据访问AdminDao类,包含获取全部数据,添加数据,删除数据等方法。
四、设计服务AdminService类,包含查询服务,添加服务,修改服务,删除服务等方法,查询服务要调用AdminDao类的queryAllData()方法,获取全部数据。
五、设计WelcomeFrame类,声明一个图片组件和一个按钮组件,设计一个设置窗体的函数,包括窗体大小、窗体位置、标题。添加组件方法,包括按钮组件,标题组件。设计添加监听器方法。设计一个显示管理员界面方法,让它链接到下一个界面。
六、设计Adminis类,声明一个按钮、两个标签,设计一个设置窗体的函数,包括窗体大小、窗体位置、。添加组件方法,包括按钮组件,标题组件。设计添加监听器方法。设计一个显示管理员界面方法,让它链接到下一个界面。设计一个修改的方法调用Administrator类的验证方法。
七、设计系统管理界面, AdminDialog类,定义界面使用的组件,使用JTextField组件输入文本,编写构造方法,初始化方法,添加组件,添加监听器,编写查询方法,调用adminService的查询服务,编写添加方法,删除方法,修改方法。
八、编写工具类,方便WelcomeFrame类调用。
九、设计主方法,调用WelcomeFrame().setVisible(true),运行项目。工具
类图学习
2.完成文件复制操做,在程序运行后,提示输入源文件路径和目标文件路径。this
程序设计思路:使用FileInputStream和FileOutputStream方法编写,输出语句提示用户输入源文件路径和目标文件路径。
码云commit历史截图
代码行数(新增/累积) | 学习时间(新增/累积) | 本周学习内容 | |
---|---|---|---|
目标 | 5000行 | 300小时 | |
第2-4周 | 100/100 | 20/20 | 学习了数组和方法 |
第5周 | 200/300 | 30/50 | 学习了String类和StringBuffer类 |
第6周 | 800/1100 | 40/90 | 学习了this、static关键字,Singleton模式 |
第八周 | 1200/1700 | 60/110 | 继承和多态,抽象方法 |
第九周 | 1500/2000 | 10/120 | 接口、工厂设计模式、包装类、匿名内部类、日期类、正则表达式 |
第十周 | 1900/2400 | 10/130 | 异常处理、泛型、集合 |
第十一周 | 2500/3000 | 20/150 | 用户图形界面、事件处理 |
第十二周 | 500/3500 | 10/160 | JDBC数据库的连接 |
第十三周 | 800/4300 | 50/210 | java io |