版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计方法
-----第九讲文件操作
2018-12-20课件9:2第九讲输入输出流学习目标:了解Java中流的概念,流的分类。掌握文件输入/输出流(FileInputStream和FileOutputStream)掌握FileReader类和FileWriter类掌握使用File类对进行文件操作的方法学会使用RandornAccessFile类随机访问文件了解对象流概念了解序列化和对象克隆课件9:39.1输入输出流基础流的概念大多数应用程序都需要与外部设备进行数据交换,最常见的外部设备包含磁盘,网络,键盘和显示器等。IO就是指应用程序对这些设备的数据输入和输出。是指同一台计算机或网络中不同计算机之间有序运动着的数据序列。在Java中,我们将这些输入输出的数据都看作数据流。即一串连续不断的数据的集合,就像水管里的水流。是程序和外界进行数据交换的通道。数据流是所有数据通信通道之中数据的起点和终点。课件9:49.1输入输出流基础流的分类按功能划分:输入流:表示从外部设备到计算机的数据流动。输出流:表示从计算机到外部设备的数据流动。输出流输入流注意:输入和输出是相对于应用程序而言的。如果我们要将文件A的内容写入文件B,那么要读取文件A的内容和写入文件B时,我们分别需要建立什么流?课件9:59.1输入输出流基础流的分类按功能划分:输入流:表示从外部设备到计算机的数据流动。输出流:表示从计算机到外部设备的数据流动。课件9:69.1输入输出流基础流的分类按流中的数据类型划分:字节流:以字节为传输单位。字符流:以字符为传输单位,特别用于文本数据。按建立方式和工作原理划分:节点流:程序与输入源或输出宿之间直接建立的流过滤流:以某一个节点流作为流的来源,并对其进行一些加工处理的流。能有效改善输入/输出操作。课件9:79.1输入输出流基础基本流的类字节流输入字节流:InputStream输出字节流:OutputStream字符流输入字符流:Reader输出字符流:Writer以上四个基本流类都是抽象类,只是为具体其子类规定要实现的方法。由其具体子类负责创建与各种数据源或数据宿的数据流。课件9:89.2File类File类概述是专门用来管理磁盘文件和目录的。每个File类的对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息。如文件或目录的名称、文件的长度、目录中所含文件的个数等为处理字节的输入/输出提供了便利方法调用File类的方法则可以完成对文件或目录的常用管理操作。如创建文件或目录、删除文件或目录、查看文件的有关信息等。课件9:99.2File类File类的构造方法publicFile(Stringpathname):创建一个对应于参数pathname的File类对象。参数pathname是包含目录和文件名的字符串。如果没有文件名,则代表目录。例如:
Filefile1=newFile("d:\\javapj\\myinput"); Filefile2=newFile("d:\\javapj\\myinput\\mysys.java");课件9:109.2File类File类的构造方法publicFile(Stringparent,Stringchild):该构造函数将pathname分成两部分parent和child,参数parent表示目录或文件所在路径,参数child表示目录或文件名称。例如: Filefile1=newFile("d:\\javapj","myinput"); Filefile2=newFile("d:\\javapj\\myinput","mysys.java");课件9:119.2File类File类的构造方法publicFile(Fileparent,Stringchild):该构造函数与上面一个的不同之处,在于将parent的参数类型由String变为File,代表parent是一个已经创建了的File类文件对象(指向目录)。例如: Filefile1=newFile("d:\\javapj\\myinput"); Filefile2=newFile(file1,"mysys.java");课件9:129.2File类File类的常用方法publicbooleancanWrite():返回文件是否可写。publicbooleancanRead():返回文件是否可读。publicbooleancreateNewFile():当文件不存在时创建文件。publicbooleandelete():从文件系统内删除该文件。publicvoiddeleteOnExit():程序顺利结束时从系统中删除文件。publicbooleanexists():判断文件是否存在。publicFilegetAbsoluteFile():以File类对象形式返回文件的绝对
路径。publicStringgetAbsolutePath():以字符串形式返回文件的绝对路
径。publicStringgetName():以字符串形式返回文件名称。课件9:139.2File类File类的常用方法publicStringgetParent():以字符串形式返回文件父目录路径。publicStringgetPath():以字符串形式返回文件的相对路径。publicFilegetParentFile():以File类对象形式返回文件父目录的
路径。publicbooleaisFile():判断该File对象所对应的是否是文件。publiclonglastModified():返回文件的最后修改时间。publicintlength():返回文件长度。publicbooleanmkdir():在当前目录下生成指定的目录。publicbooleansetReadOnly():将文件设置为只读。publicStringtoString():将文件对象的路径转换为字符串返回。课件9:149.2File类对文件的操作按以下步骤进行:创建文件输入/输出对象。打开文件。用文件读/写方式读取数据。关闭数据流。课件9:159.3文件输入/输出流从文件输入/输出流中读/写数据有两种方式:一是直接利用FileInputStream和FileOutputStream自身的读/写功能;二是以FileInputStream和FileOutputStream为原始数据源,再套接上其他功能较强大的输入/输出流完成文件的读/写操作。一般多采用第二种方式。课件9:169.3文件输入/输出流文件字节流包含FileInputStream和FileOutputStream类;FileInputStream类是用于读取文件中字节数据的字节文件输入流类。用于顺序访问本地文件。它从超类InputStream中继承了read、close等方法对本机上的文件进行操作,但不支持mark方法和reset方法。FileOutputStream类是用于将字节流信息写入指定文件的。它从其超类OutputStream中继承了write、close等方法。课件9:179.3文件输入/输出流FileInputStream类的构造方法FileInputStream(Stringname)使用指定的字符串创建一个FileInputStream对象。FileInputStream(Filefile)使用指定的文件对象创建一个FileInputStream对象。FileInputStream(FileDescriptorfd)使用指定的文件描述符创建一个FileInputStream对象。课件9:189.3文件输入/输出流FileInputStream类的常用成员方法read():自输入流中读取一个字节。read(byteb[]):将输入数据存放在指定的字节数组b中。read(byteb[],intoffset,intlen):自输入流中的offset位置开始读取len个字节并存放在指定的数组b中。available():返回输入流中的可用字节个数。skip(longn):从输入流中跳过n个字节。课件9:199.3文件输入/输出流FileOutputStream类的构造方法FileOutputStream(Stringname)使用指定的字符串创建一个FileOutputStream对象。FileOutputStream(Filefile)使用指定的文件对象创建一个FileOutputStream对象。FileOutputStream(FileDescriptorfd)使用指定的文件描述符创建一个FileOutputStream对象课件9:209.3文件输入/输出流FileOutputStream类的常用成员方法write(intb):将指定字节写入此文件输出流。write(byteb[]):将b.length个字节从指定字节数组写
入文件输出流中write(byteb[],intoffset,intlen):将指定字节数组中从偏移量off开始的len个字节写入此文件输出流。close():关闭此文件输出流并释放与此流有关的所有系统资源。如果没有关闭那些被打开的流,那么就可能不允许另一个程序操作这些流所用的资源。课件9:219.4字符文件读写概述Java中的字符是Unicode编码,是双字节,而InputStream和OutputStream是用来处理单字节的,在处理字符文本时不太方便,Java就为字符文本的输入输出专门提供了一套单独的类。Reader、Writer与InputStream、OutputStream相对应,也是两个抽象类。文件字符流包括FileReader类和FileWriter类。FileReader类:用于读取文件字符数据。FileWriter类:用于向文件写入字符数据。FileReader类和FileWriter类这两个类没有自己独特的成员方法,它们的成员方法都直接继承自父类。课件9:229.4字符文件读写FileReader类构造方法FileReader(StringfileName)使用指定的文件名创建一个FileReader对象。FileReader(Filefile)使用指定的文件对象创建一个FileReader对象。FileReader(FileDescriptorfd)使用指定的文件描述符创建一个FileReader对象。课件9:239.4字符文件读写FileWriter类构造方法FileWriter(StringfileName)使用指定的文件名创建一个FileWriter对象。FileWriter(Filefile)使用指定的文件对象创建一个FileWriter对象。FileWriter(FileDescriptorfd)使用指定的文件描述符创建一个FileWriter对象。课件9:249.5RandomAccessFile(随机访问文件)类概述InputStream/OutputStream、Reader/Writer类来说,它们都是顺序访问流,只能进行顺序读写。RandomAccessFile类实现对文件的随机读/写操作。RandomAccessFile实现了DataInput和DataOutput接口。RandomAccessFile类提供了定位文件的方法课件9:259.5RandomAccessFile(随机访问文件)类RandomAccessFile类的构造方法RandomAccessFile(Filefile,Stringmode)使用指定的文件对象和存取模式创建其类对象。RandomAccessFile(Stringname,Stringmode)使用指定字符串和存取模式创建其类对象。存取模式:r代表以只读方式打开文件;rw代表以读/写方式打开文件。课件9:269.5RandomAccessFile(随机访问文件)类RandomAccessFile类的常用方法方法名功能描述longgetFilePointer()返回当前文件指针longlength()返回文件长度booleanreadBoolean()读入一个布尔值intreadInt()读入一个整数stringreadLine()读入一行字符串voidseek(longpos)文件指针移到指定位置intskipBytes(intn)文件指针向前移n个字节voidwrite(byteb[])把数组内容写入文件voidwriteBoolean(booleanv)写入一个布尔值voidwriteInt(intv)写入一个整数课件9:279.5RandomAccessFile(随机访问文件)类RandomAccessFile类案例importjava.io.*;publicclassRandomTester{publicstaticvoidmain(Stringargs[])throwsIOException{RandomAccessFilerf=newRandomAccessFile("D:\\test.dat","rw");for(inti=0;i<10;i++)rf.writeLong(i*1000);rf.seek(5*8);//从文件开头开始,跳过第5个long数据,接下来写第6个long数据
rf.writeLong(1234);rf.seek(0);//把读写指针定位到文件开头
for(inti=0;i<10;i++)System.out.println("Value"+i+":"+rf.readLong());rf.close();}Value0:0Value1:1000Value2:2000Value3:3000Value4:4000Value5:1234Value6:6000Value7:7000Value8:8000Value9:9000课件9:289.5RandomAccessFile(随机访问文件)类RandomAccessFile类案例(随机读取文件中的字符信息。)importjava.io.*;publicclassReadtext{ publicstaticvoidmain(String[]args) { Stringstr1; charch1; intn
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年食堂服务外包协议标准格式稿版B版
- 2024版权许可使用合同标的及授权范围
- 二零二五年度粉煤灰环保处理与综合利用合作协议3篇
- 2024未成年人安全知识普及与紧急疏散演练服务合同3篇
- 二零二五年度智能安防系统安装工程施工协议
- 2025年度美容美发人工费结算范本2篇
- 2024版规范化工程承包条款示例协议版B版
- 职称技术工作总结范文(9篇)
- 二零二五年度会员权益专属转让协议示范文本3篇
- 2024房地产中介服务佣金保障合同版B版
- 市政工程监理规划范本(完整版)
- 强力夯实加固地基质量通病防治
- 《流体力学》课件
- (高清正版)T-CAGHP 015—2018地质灾害治理工程监理预算标准(试行)
- Q∕GDW 12083-2021 输变电设备物联网无线节点设备技术规范
- 公司物流仓储规划方案及建议书
- 智能扫地机器人毕业设计
- 佳能EOS7D数码单反相机说明书
- 大型焰火燃放活动方案审批表
- 管道保温层厚度的计算方法
- 喷嘴压力计算表及选型
评论
0/150
提交评论