- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4. ?FileWriter FileWriter创建一个可以写文件的Writer 类。它最常用的构造方法如下: FileWriter(String filePath) FileWriter(String filePath, boolean append) FileWriter(File fileObj) 上述构造方法可以引发IOException或SecurityException异常。这里,filePath是文件的绝对路径,fileObj是描述该文件的File对象。如果append为true,则输出是附加到文件尾的。FileWriter类的创建不依赖于文件存在与否。在创建文件之前,FileWriter将在创建对象时打开它作为输出。如果试图打开一个只读文件,将引发一个IOException异常。 【例10-4】 CharDemo.java。 输出结果: Hello World!!! 程序说明: 此程序也同样分为两部分:一部分是向文件中写入内容(第8行~第34行),另一部分是从文件中读取内容(第37行~第64行)。 (1) 程序第6行通过一个File类找到C盘下的一个temp.txt文件。 (2) 向文件写入内容。 ① 第8行~第15行通过File类的对象去实例化Writer的对象,此时是通过其子类FileWriter实例化Writer对象,属于对象的向上转型。 ② 因为字符流主要以操作字符为主,所以程序第17行声明一个String类的对象str。 ③ 第18行~第26行调用Writer类中的 write()方法将字符串中的内容写入到文件中。 ④ 第27行~第34行调用Writer类中的 close()方法,关闭数据流操作。 (3) 从文件中读入内容。 ① 第37行~第44行通过File类的对象去实例化Reader的对象,此时是通过其子类 FileReader实例化Reader对象,属于对象的向上转型。 ② 因为字节流主要以操作char数组为主,所以程序第46行声明一个大小为1024的char数组,此数组用于存放读入的数据。 ③ 第48行~第56行调用Reader类中的read()方法将文件中的内容读入到char数组中,同时返回读入数据的个数。 ④ 第57行~第64行调用Reader类中的close()方法,关闭数据流操作。 ⑤ 第66行将char数组转成字符串输出。 可以将该例第27行到第34行注释掉,也就是说在向文件写入内容之后不关闭文件,这时再打开文件,可以发现文件中没有任何内容,这是为什么呢?从JDK文档之中查找FileWriter类,如图10-1所示。 图10-1 FileWriter类 10.3.3 管道流 管道流的主要作用是连接两个线程间的通信。管道流也分为字节流(PipedInputStream、PipedOutputStream)与字符流(PipedReader、PipedWriter)两种类型。本节主要讲解Piped InputStream与PipedOutputStream。 一个PipedInputStream对象必须和一个 PipedOutput Stream对象进行连接而产生一个通信管道,PipedOutputStream可以向管道中写入数据,PipedInputStream可以从管道中读取PipedOutputStream写入的数据。如图10-2所示,这两个类主要用来完成线程之间的通信,一个线程的PipedInputStream对象能够从另外一个线程的PipedOutputStream对象中读取数据。 图10-2 管道流 程序说明: (1) 第8行和第9行分别声明了Sender和Receiver的实例化对象,之后返回各自的管道输出流及管道输入流对象,通过管道输出流的connect方法,将两个管道连接在一起,最后分别启动线程。 (2) 第22~42行声明一个Sender类,此类继承了Thread类,所以此类复写了Runnable接口之中的run()方法。程序第24行声明一个PipedOutputStream对象out,此对象用于发送信息。 (3) 第43~66行声明一个Receiver类,此类继承了Thread 类,所以此类复写了Runnable 接口中的run()方法。程序第45行声明了一个PipedInputStream 对象in,此对象用于接收其他线程发来的信息。 * *
您可能关注的文档
- 2015金属材料和热处理(机工版)课件:金属的性能.ppt
- 2015金属材料和热处理(机工版)课件:金属的晶体结构与结晶 .ppt
- 2015金属材料和热处理(机工版)课件:钢的热处理.ppt
- 2015金属材料和热处理(机工版)课件:铁碳合金 .ppt
- 2015金属材料和热处理(机工版)课件:非金属材料.ppt
- 2015金属焊接切割作业(劳动版)教学课件:概述 .ppt
- 2015金属焊接切割作业(劳动版)教学课件 .ppt
- 2015金属焊接切割作业(劳动版)教学课件:气焊、气割用气体、设备和工具.ppt
- 2015金属焊接切割作业(劳动版)教学课件:焊接电弧基本概念及熔焊原理 .ppt
- 2015金属焊接切割作业(劳动版)教学课件:焊接作业的安全操作技术 .ppt
文档评论(0)