知识大全 JAVA IO操作总结——节点流和处理流

Posted 字节

篇首语:世界上三种东西最宝贵本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JAVA IO操作总结——节点流和处理流相关的知识,希望对你有一定的参考价值。

JAVA IO操作总结——节点流和处理流  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  按照流是否直接与特定的地方(如磁盘 内存 设备等)相连 分为节点流和处理流两类

  节点流 可以从或向一个特定的地方(节点)读写数据 如FileReader

  处理流 是对一个已存在的流的连接和封装 通过所封装的流的功能调用实现数据读写 如BufferedReader 处理流的构造方法总是要带一个其他的流对象做参数 一个流对象经过其他流的多次包装 称为流的链接

  常用的节点流

  父 类    InputStream             OutputStream              Reader               Writer

  文 件   *FileInputStream       FileOutputStrean         FileReader         FileWriter 文件进行处理的节点流

  数 组   *ByteArrayInputStream      ByteArrayOutputStream      CharArrayReader    CharArrayWriter       对数组进行处理的节点流(对应的不再是文件 而是内存中的一个数组)

  字符串   *无                无        StringReader   StringWriter       对字符串进行处理的节点流

  管 道   *PipedInputStream        PipedOutputStream   PipedReader   PipedWriter 对管道进行处理的节点流

  常用处理流(关闭处理流使用关闭里面的节点流)

  父 类     InputStream                     OutputStream                       Reader                               Writer

  缓冲流    *BufferedImputStrean BufferedOutputStream         BufferedReader                BufferedWriter    需要父类作为参数构造 增加缓冲功能 避免频繁读写硬盘 可以初始化缓冲数据的大小 由于带了缓冲功能 所以就写数据的时候需要使用flush方法咯

  转换流    *InputStreamReader          OutputStreamWriter 要inputStream或OutputStream作为参数 实现从字节流到字符流的转换

  数据流    *DataInputStream            DataOutputStream    提供将基础数据类型写入到文件中 或者读取出来 为什么要有这个流呢?看这样的分析 如果没有这种流的话 有一个long 本身只占 个字节 如果我要写入到文件 需要转成字符串 然后在转成字符数组 那空间会占用很多 但是有了这种流之后就很方便了 直接将这 个字节写到文件就完了 是不是既节约了内存空间有让程序写起来更加方便简单了呐 写倒是很简单 但是读取的时候就注意了 根据读取的数据类型 指针会往下移 所以你写的顺序必须要和读的顺序一致才能完成你正确的需求

  *ObjectInputStream          ObjectOutputStream

  *顺便研究序列化 将对象所在的类型全部转换成二进制 然后写入到介质中去

  *transient关键字 修饰成员变量 不写入该成员变量

  *Serializable接口 表示接口 怎样实现的呢 在序列化之前 首先判断 (对象 instanceof Serializable)如果返回true则执行序列化 否者抛出异常 并且里面有一个ID 是用来快速查找某个对象的时候使用的

  *Externalizable接口 外部化接口 他是Serializable接口的子接口 能手动控制序列化的方式

  为什么要用writeUTF() 因为这种方式是按照utf 来写入的 而默认方式是utf 只是节省空间而已

   字节流读取中文的问题

  *由于java使用的是unicode编码 每一个中文字符是占用两个字节的 所以没有只读出其中一个字节并使用的话当然是乱码咯 虽然普通的英文字符也是两个字节的 但是读取的时候将高 位去掉也能回去正确的英文字符 所以没有问题 所以最好还是使用字符流的方式读取好点

   java io中专门提供用于打印的流(这类流在写入的时候有自动flush的功能 所以你不需要每打印一个东西都flush一次) 注意他们也是属于处理流 只不过这里单独列出来分析而已

  *PrintStream 继承自 >FilterOutputStream 继承自 >OutputStream (它的构造函数需要OutputStream对象)

  *PrintWriter 继承自 >Writer(它的构造函数需要Writer对象)

  System In====InputStream

  System Out===PrintStream

  这种流的print方法不会抛出异常 这是JSP技术中常用的流 如果在JSP页面的打印会抛出异常的话 那JSP也太难写了点!注意理解这样的设计思路

   看这样的代码

  PrintStream ps=new PrintStream(new OutputStream( c:// ));

  System setOut(ps);

cha138/Article/program/Java/hx/201311/26364

相关参考

知识大全 java 常用IO操作

java常用IO操作  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  packagesyjutil

知识大全 c#文件的创建、读取及写入

  在c#中运用到操作流时首先要加入以下两个命名空间  usingSystemIO;  usingSystemCollections;  我总结了以下几种方式来进行IO操作很简便但却很实用  目录的创

知识大全 Delphi 中压缩流和解压流的应用

Delphi中压缩流和解压流的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb

知识大全 关于 Delphi 中压缩流和解压流的应用

关于Delphi中压缩流和解压流的应用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  软件开发者

知识大全 Java对各种文件的操作详解

Java对各种文件的操作详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  java中提供了io

知识大全 彻底明白Java的IO系统

彻底明白Java的IO系统  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  彻底明白Java的IO

知识大全 IO的阻塞与非阻塞、同步与异步以及Java网络IO交互方式

IO的阻塞与非阻塞、同步与异步以及Java网络IO交互方式  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 Java的文件IO机制

Java的文件IO机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java有一个庞大的I/O

知识大全 java序列化--java.io.Serializable接口解析

java序列化--java.io.Serializable接口解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一

知识大全 Java多线程操作相关问题总结

Java多线程操作相关问题总结  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!