- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10.3 流 类 Java的流式输入/输出建立在四个抽象类的基础上,这四个抽象类分别是InputStream、OutputStream、Reader和Writer。它们用来创建具体流式子类。尽管程序通过具体子类执行输入/输出操作,但顶层的类定义了所有流类的基本通用功能。InputStream和OutputStream设计成字节流类。Reader和Writer设计为字符流类。字节流类和字符流类形成分离的层次结构。一般来说,处理字符或字符串时应使用字符流类,处理字节或二进制对象时应用字节流类。 一般在操作文件流时,不管是字节流还是字符流都可以按照以下方式进行: (1) 使用File类找到一个文件。 (2) 通过File类的对象去实例化字节流或字符流的子类。 (3) 进行字节(字符)的读/写操作。 (4) 关闭文件流。 下面分别介绍字节流和字符流类。 10.3.1 字节流 1. ?InputStream(输入字节流) InputStream是一个定义了Java流式字节输入模式的抽象类。该类的所有方法在出错条件下都会引发一个IOException异常。表10-1显示了InputStream的方法。 2. ?OutputStream(输出字节流) OutputStream是定义了流式字节输出模式的抽象类。该类的所有方法返回一个void值并且在出错的情况下引发一个IOException异常。表10-2显示了OutputStream定义的方法。 3. ?FileInputStream(文件输入流) FileInputStream类创建一个能从文件读取字节的InputStream类,它的两个常用的构造方法如下: FileInputStream(String filepath) FileInputStream(File fileObj) 这两个构造方法都能引发FileNotFoundException异常。这里filepath是文件的绝对路径,fileObj是描述该文件的File对象。 下面的例子创建了两个使用同样磁盘文件且各含一个上面所描述的构造方法的FileInput- Stream类: 4. ?FileOutputStream(文件输出流) FileOutputStream 创建了一个可以向文件写入字节的类 OutputStream,它常用的构造方法如下: FileOutputStream(String filePath) FileOutputStream(File fileObj) FileOutputStream(String filePath, boolean append) 它们可以引发IOException或SecurityException异常。这里filePath是文件的绝对路径,fileObj是描述该文件的 File 对象。如果append为true,则文件以设置搜索路径模式打开。FileOutputStream的创建不依赖于文件是否存在。在创建对象时,FileOutputStream会在打开输出文件之前就创建它。这种情况下如果试图打开一个只读文件,则会引发一个IOException异常。 在下面的例子中,用FileOutputStream类向文件中写入一字符串,并用FileInputStream读出写入的内容。 【例10-3】 StreamDemo.java。 ① 第8行~第15行通过File类的对象去实例化Output Stream 的对象,此时是通过其子类FileOutputStream实例化OutputStream的对象,属于对象的向上转型。 ② 因为字节流主要以操作byte数组为主,所以程序第17行通过String类中的getBytes()方法将字符串转换成一个byte数组。 ③ 第18行~第26行调用OutputStream类中的write()方法将byte数组中的内容写入到文件中。 ④ 第27行~第34行调用OutputStream类中的close()方法,关闭数据流操作。 (3) 从文件中读取内容: ① 第37行~第44行通过File类的对象去实例化Input Stream的对象,此时通过其子类FileInputStream实例化Input Stream的对象,属于对象的向上转型。 ② 因为字节流主要以操作byte数组为主,所以程序第46行声明一个大小为1024的byte数组,此数组用于存放读入的数据。 ③ 第49行~第56行调用InputStream类中的read()方法将文件中的内容读入到byte数组中,同时返回读入数据的个数。
您可能关注的文档
- 2015金属工艺学(冶金版)课件:铸件的结构工艺性.ppt
- 2015金属材料和热处理(机工版)课件:金属的性能.ppt
- 2015金属材料和热处理(机工版)课件:金属的晶体结构与结晶 .ppt
- 2015金属材料和热处理(机工版)课件:钢的热处理.ppt
- 2015金属材料和热处理(机工版)课件:铁碳合金 .ppt
- 2015金属材料和热处理(机工版)课件:非金属材料.ppt
- 2015金属焊接切割作业(劳动版)教学课件:概述 .ppt
- 2015金属焊接切割作业(劳动版)教学课件 .ppt
- 2015金属焊接切割作业(劳动版)教学课件:气焊、气割用气体、设备和工具.ppt
- 2015金属焊接切割作业(劳动版)教学课件:焊接电弧基本概念及熔焊原理 .ppt
- 2024-2025学年山东省潍坊市昌邑市高一上学期11月期中考试政治试题(解析版).docx
- 2024-2025学年山东省枣庄市薛城区、山亭区高二上学期1月期末考试政治试题(解析版).docx
- 2024-2025学年浙江省金砖联盟高一下学期4月期中考试政治试题(解析版).docx
- 2024-2025学年辽宁省协作体高三下学期第二次模拟考试政治试题(解析版).docx
- 2024-2025学年山东省威海市高二上学期期末考试政治试题(解析版).docx
- 2024-2025学年江西省八校协作体高二上学期期中考试政治试题(解析版).docx
- 2024-2025学年浙江省杭州市S9联盟高一上学期期中联考政治试题(解析版).docx
- 2024-2025学年浙江省宁波市三锋教研联盟高一下学期期中联考政治试题(解析版).docx
- 2024-2025学年山东省滨州市高二上学期1月期末考试政治试题(解析版).docx
- 2024-2025学年内蒙古自治区通辽市高二下学期3月月考政治试题(解析版).docx
最近下载
- GB∕T38305-2019头部防护救援头盔..pdf
- 2024届湖南省张家界市慈利县高一物理第二学期期末达标检测模拟试题含解析.doc VIP
- 通信铁塔标准图集(V1.0).pdf VIP
- 选矿试验技术方法 第5部分:浮选.docx VIP
- 《选矿试验技术方法第4部分:磁选》.pdf VIP
- 上市公司董事会秘书工作手册-信息披露政策法规汇编(通用) 20240627.pdf VIP
- 高标准农田设计实施方案(技术标340页).doc VIP
- 1688店铺运营计划方案.pdf VIP
- 《医学伦理学》教案 第四章 医学伦理学的规范体系.pdf VIP
- 《选矿试验技术方法 第1部分:破碎筛分》.pdf VIP
文档评论(0)