- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
java io流学习总结
一、什么是流? 流就是字节序列的抽象概念,能被连续读取数据的数据源和能被连续写入数据的接收端就是流,流机制是Java及C++中的一个重要机制,通过流我们可以自由地控制文件、内存、IO设备等数据的流向。而IO流就是用于处理设备上的数据,如:硬盘、内存、键盘录入等。IO流根据处理类型的不同可分为字节流和字符流,根据流向的不同可分为输入流和输出流。 二、字节流和字符流的区别: 字符流,因为文件编码的不同,就有了对字符进行高效操作的字符流对象,它的原理就是基于字节流读取字节时去查了指定的码表。它和字节流的区别有两点:1.在读取数据的时候,字节流读到一个字节就返回一个字节,字符流使用了字节流读到一个或多个字节(一个中文对应的字节数是两个,在UTF-8码表中是3个字节)时,先去查指定的编码表,再将查到的字符返回;2.字节流可以处理所有类型的数据,如jpg、avi、mp3、wav等等,而字符流只能处理字符数据。所以可以根据处理的文件不同考虑使用字节流还是字符流,如果是纯文本数据可以优先考虑字符流,否则使用字节流。 三、IO体系,所具备的基本功能就是读和写: 1.字符流 |-- Reader(读) |-- Writer(写) Reader |--InputStreamReader |--FileReader:用于处理文件的字符读取流对象 Writer |--OutputStreamWriter |--FileWriter:用于处理文件的字符写入流对象 其实很容易就可以看出来,IO体系中的子类名后缀绝大部分是父类名称,而前缀则是体现子类特有功能的名称。 Reader中常见的方法: |--int read 读取一个字符,并返回读到的这个字符,读到流的末尾则返回-1。 |--int read(char) 将读到的字符存入指定的数组中,返回的是读到的字符个数, 读到流的末尾则返回-1。 |--close 读取字符其实用的是window系统的功能,就希望使用完毕后, 进行资源的释放。 FileReader除了自己的构造函数外没有特有的方法: |--用于读取文本文件的流对象。 |--用于关联文本文件。 |--构造函数FileReader(String fileName) 在读取流对象初始化时,必须要指定一个被读取的文件, 如果该文件不存在则会发生FileNotFoundException异常。 Writer中常见的方法: |--write 将一个字符写入到流中。 |--write(char) 将一个字符数组写入到流中。 |--writer(String) 将一个字符写入到流中。 |--flush 刷新流,将流中的数据刷新到目的地中,流还存在。 |--close 关闭资源,在关闭钱会先调用flush, 刷新流中的数据到目的地。 FileWriter,除了自己的构造函数外没有特有的方法: |--该类的特点 |--用于处理文本文件 |--没有默认的编码表 |--有临时缓冲 |--构造函数,在写入流对象初始化时,必须要有一个存储数据的目的地。 |--FileWriter(String fileName),该构造器是干什么用的呢? |--调用系统资源 |--在指定位置创建一个文件,如果该文件已经存在则被覆盖。 |--FileWriter(String filename,Boolean append),这构造器的作用是? 当传入的boolean类型的值为true时,会在指定文件末尾处进行数据的续写。 清单1,将文本数据保存到文件中代码 private static void test1{ FileWriter fw=null; try { //初始化FileWriter对象,指定文件名已经存储路径 fw=new FileWriter(D:/test.txt); fw.write(将字符串写入流); //将流中的数据刷新到目的地,流还在 fw.flush; fw.write(将字符串写入流); } catch (IOException e) { e.printStackTrace; }finally{ if(fw!=null){ try { fw.close; } catch (IOException e1) { e1.printStackTrace; } } } } 清单2,读取一个已有文本文件,并将文本内容打印出来代码 private
- 简历,PPT,表格专业定制 + 关注
-
官方认证服务提供商
毕业于中南财经政法大学,十二年office学习经验。 微软MOS认证专家,曾予供销社、中国银行、国家电网等企事业单位定制财务模板与PPT模板。 头条百家数十万粉丝作者,WPS稻壳儿优秀设计师。
文档评论(0)