版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、输入输出,案例1,教学目标,掌握Java中流的分类及其相关概念 理解java.io包中流类的构成 掌握File类 掌握FileInputStream/FileOutputStream类 掌握DataInputStream/DataOutputStream类,教学任务,编写一个程序实现对帐户数据的存储和浏览的功能(帐户数据包括帐户ID、帐户金额和交易日期)。,相关实践知识1,打开NetBeans IDE,相关实践知识2,新建Java应用程序JavaIOProject1,相关实践知识3,Java中输入输出的实现,起点是理解流、输入输出、文件和字节字符这些基本概念。 字节、字符 文件 输入、输出 流
2、,相关实践知识4,新建Java类 Account,相关实践知识5,在Account类中,导入需要的包,package com.handson; import java.io.EOFException; import java.io.IOException; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.File; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOExc
3、eption; import java.util.Date; import java.util.ArrayList; import java.util.Iterator; import java.util.List;,相关实践知识6,在Accout类中定义变量,private long id; /帐户ID private double amount; /帐户金额 private Date date; /交易日期,相关实践知识7,输入get/set方法,/* 对象的文本描述 */ public String toString() return 帐户ID:+this.getId()+|帐户金额:+
4、this.getAmount()+ |交易日期:+this.getDate()+; Id, amount, date,的get/set方法,相关实践知识8,定义Account类的构造方法,public Account() this(0L, 0.0, new Date(); public Account(long id, double amount, Date date) this.setId(id); this.setAmount(amount); this.setDate(date); ,相关实践知识9,定义数据读写方法,/* 写出数据 */ public void write(DataOu
5、tputStream out) throws IOException out.writeLong(this.getId(); out.writeDouble(this.getAmount(); out.writeLong(this.getDate().getTime(); return; /* 读入数据 */ public Account read(DataInputStream in) throws IOException this.setId(in.readLong(); this.setAmount(in.readDouble(); this.setDate(new Date(in.re
6、adLong(); return this; ,相关实践知识10,定义方法从文件中读取帐户信息,public static List readAccount(File file) FileInputStream in = null; DataInputStream dataIn = null; List result = new ArrayList(); try in = new FileInputStream(file); catch (IOException e) System.out.println(指定的文件不存在!); return result; dataIn = new Data
7、InputStream(in); . return result; ,相关实践知识11,定义方法将账户信息写入文件,public static boolean writeAccount(List accounts, File file) boolean flag = true; FileOutputStream out = null; DataOutputStream dataOut = null; try try out = new FileOutputStream(file); dataOut = new DataOutputStream(out); Iterator ite = acco
8、unts.iterator(); . return flag; ,相关实践知识12,编写main函数,测试,总结,java.io包的流类可以从字节/字符,输入/输出和基础流/过滤流三个角度来考察。 File类表示文件及其相关的一组操作。 字节流多继承自InputStream/OutputStream,常用的有FileInputStream和FileOutputStream。 DataInputStream/DataOutputStream提供了读写基本数据类型的方法。 编写Java I/O程序应处理IOExcpetion及其子类。,字节、字符,字节 一般是指8位二进制数所组成的数据单位,人类无
9、法直接通过阅读其字面值来理解它所表达的含义; 字符 是指人类能够直接阅读的符号,在Java中以16位的Unicode码表示。而计算机在存储数据的时候将所有的数据(包括字符)都以字节为单位进行存储。,文件,我们通常所谈的“文件“多是指磁盘存储系统上所存储的数据(文件)。,输入输出,输入输出(input/output)也称I/O。从任何能够发送字节的地方(数据源)可以取得“输入”对象;通过“输出”对象可以发送数据到任何能够接收字节的地方(输出的目的地)。,流,所谓流(stream),是指有序的数据序列,它有一个来源(输入流)或者目的地(输出流)。,java.io包,java.io包中定义了一系列的
10、接口、抽象类、具体类和异常来描述输入输出操作。这些类/接口将程序员与底层操作系统的具体实现细节隔离开来,同时允许通过文件或者其他方式去访问系统资源。,InputStream,java.io包的结构,OuputStream,Reader,Writer,文件-1,java.io包中使用类java.io.File来表示文件的概念。该类中封装了对用户机器的文件系统进行操作的功能。,文件-2,常用构造函数,文件-3,在java.io中的类都是将相对路径解释为起始于用户的当前工作目录 ,如果当前路径下该文件并不存在,则不会创建该文件 .,File file1 = new File(c:temp.txt);
11、 File file2 = new File(temp.txt); File file3 = new File(c:windows); File file4 = new File(c:windows, temp.txt); File file5 = new File(file3, temp.txt);,文件-4,常用字段,文件-5,为了让你的代码具有更好的可移植性,应尽量使用这些封装的常量而不是字符串字面值 ,如下面例子所示:,System.out.println(File.separatorChar); System.out.println(File.pathSeparatorChar);
12、System.out.println(System.getProperty(file.separator); System.out.println(System.getProperty(path.separator);,文件-6,常用方法,字节流-1,用于读取或者写入字节的流是字节流。 java.io包中的字节流分为字节输入流和字节输出流两类。 所有的字节输入流都直接或者间接地继承自InputStream,所有的字节输出流都直接或者间接地继承自OutputStream。,字节流-2,所有的字节流都支持打开和关闭的概念。 所有的字节流具有相同的同步策略和并发行为。 大多数对流的操作都会抛出IOE
13、xception或者它的子类。,OutputStream-1,java.io.OutputStream 此抽象类是表示字节输出流的所有类的超类。它提供了向某个目标写入字节的抽象方法,OutputStream-2,常用方法,DataOutputStream,java.io.DataOutputStream 继承自FilterOutputStrem,允许应用程序以适当方式将Java基本数据类型写入输出流中。 DataOutputStream提供了大量的write方法用以写入基本数据类型,例如:writeBoolean(boolean v),writeInt(int v)等等。,InputStrea
14、m-1,java.io.InputStream 此抽象类是表示字节输入流的所有类的超类。它声明了用以从特定资源读取字节的方法。,InputStream-2,常用方法,DataInputStream,java.io.DataInputStream 继承自FilterInputStream,允许应用程序以与机器无关方式从基础输入流中读取Java基本数据类型。 DataInputStream提供了大量的read方法用以读取基本数据类型,例如:readInt(),readBoolean(),readDouble()等等。,FileInputStream,java.io.FileInputStream 继承自InputStream,可以把输入与磁盘文件关联起来以从中获取输入字节。这只需要我们在构造函数中给出文件名/路径即可。,FileOutputStream,java.io.Fi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年建筑施工安全监督合同
- 非专利技术转让合同模板
- 办公室租赁经营合同
- 2024年度企业租赁经营合同
- 2024货物赊欠买卖合同范文
- 2024年度军事训练装载机租赁合同
- 出口合作:肉禽类协议
- 导演与摄影师工作合同模板
- 成都市室内装修工程施工协议示范
- 2024山林流转合同范文
- 单位退费申请表
- 产前筛查规范化流程和质量控制--ppt课件
- 婴幼儿伤害预防与处理习题库
- 百度投诉保证函
- 2.7-植被与自然环境的关系(精品课件)-2020-2021学年高一地理(新教材中图版必修第一册)
- 清欠工作管理制度管理办法
- 三甲评审文件盒资料--终稿
- 铁路项目桥梁墩台身施工方案
- 工作岗位风险评估工作规程
- 智能存包柜(储物柜)产品技术说明书
- 電鍍技術資料大全
评论
0/150
提交评论