46Java中的IO流技术.docx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
46Java中的IO流技术

Java中的IO流技术IO流(InputOUtput)用来处理设备之间的数据传输,IO系统的主要目的是对数据进行读写操作。Java对数据的操作是通过流的方式,输入流和输出流都是对象。Java中用于操作流的对象都存在于IO包中。IO流按照操作数据分为两种:字节流和字符流。IO流按照流向分为:输入流和输出流。输入需要读read方法,输出需要写write方法。注意:输入和输出是基于Java程序而言的,而Java程序一般又是在内存中运行,所以也可以看做是基于内存而言的,IO系统的数据流向是以Java程序为参照物。将外设的数据读入内存称为读,即输入;将内存中数据写到外设中,称为写,即输出。Java 的I/O :I/O操作的目的:从数据源(多种多样,如文件、键盘、网络等等)当中读取数据,以及将数据写入到数据目的地(如文件、屏幕、网络等等)当中;I/O 的流向:方向需要参照物, 相对而言,对于java程序本身而言,需要程序读取,即输入流,需要写到文件里,则就是输出流;流的概念:输入流,输出流,就像水流一样。就像管道一样,是一点一点的进行的传输;在数据源与目的地之间建立了一个管道;I/O 的分类:①输入流与输出流;② 字节流与字符流;③ 节点流与处理流;以前只存在字节流,其实字节流可以读取任何文件。但是后来为了国际化统一,推出了字节流。由于不同的国家有不同的文字,同时又有自己的文字编码表,为了国际统一化,推出了国际统一编码 Unicode编码。字符流的由来:字节流读取文字字节数据后,不直接操作,而是先查询指定的编码表,获取对应的文字,再对这个文字进行操作。所以,简单地说,字符流就是 字节流+编码表。字符流是以字符为处理单位的。字节流的两个顶层父类(抽象基类):InputStream 和 OutputStream。字符流的两个顶层父类(抽象基类):Reader 和 Writer。对上述四个基类加以说明:由这四种基类派生出来的子类名称都是以父类的名称作为子类名称后缀的。如InputStream 的子类FileInputStream;Reader的子类FileReader等。而且这些子类的前缀都代表了这些子类的功能。I/O的核心类:InputStream 和 OutputStream 这两个都是抽象类,父类;所有的字节输入流的类都是InputStream的子类,所有的字节输出流都是OutStream的子类。 其中两个常用的子类是FileInputStream 和FileOutputStream;这些类都是属于java.io.*;包的,使用前需要导入此包,import java.io.*; 子类FileInputStream是用来读取硬盘中文件的数据,子类FileOutputStream 是用来向硬盘中的文件写入数据。read 会返回一个读取字节的个数,调用时有三个参数,当没有读到数据时,返回-1;write 也是三个参数。 byte[] b 是比特类型的数组,off是偏移量,len 是读取的最大长度。如果要操作文字数据,建议优先考虑字符流,因为字符流就是基于这个目的出现的。大文件读写,利用循环即可,判断依据是read方法的返回值,如果返回-1说明读取结束。字符流:字符输入流Reader 和 字符输出流Writer;Reader和Writer都是抽象类,就是用来让其他类继承的,但是都有几个构造方法,抽象类的构造方法是为子类创建对象初始化用的。子类是 FileReader 与 FileWriter;调用方法如同字节流,只是数组是字符数组了,如 Int read (char[] c ;int off ; int len); 字符流与字节流操作特别类似,只不过是字节数组和字符数组,读写方法的不同(-er)。注意在读写之后要关闭读写方法。实验:将内存中的数据写到硬盘中指定的文件里。硬盘数据的基本体现就是文件,所以找到一个处理文件的类即可。创建一个可以向文件中写入字符数据的字符输出流对象;既然写数据,就必须在创建对象时就指定某个文件(用于存储数据的目的地),也就是说这个输出流类不能有空参数的构造方法。利用Writer对象的write方法,写入数据。将数据写入到临时存储缓冲区中。利用flush方法进行刷新,可以将数据写到文件中。close方法关闭流和关闭资源执行时,先进行刷新,将缓冲区中的数据写入到文件中。flush和close就相当于保存命令和关闭命令,关闭命令执行之前会提醒是否保存。对文件操作时,如果文件不存在,就会创建此文件;如果文件存在,就会覆盖原来的数据(首先将原来数据清空,再写入新的数据)。 如果需要续写原文件,可以在构造方法中加入true。实现续写:mk:@MSITStore:G:\Android学习资料\CHM帮助文档\jdk-8u60-d

文档评论(0)

gangshou + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档