Java IO
文章平均质量分 53
oxf
纵有疾风起,人生不言弃
展开
-
Java IO - CharArrayReader&CharArrayWriter
基本概念 CharArrayReader:此类实现一个可用作字符输入流的字符缓冲区。 CharArrayWriter:此类实现一个可用作 Writer 的字符缓冲区。缓冲区会随向流中写入数据而自动增长。可使用 toCharArray() 和 toString() 获取数据。 在此类上调用 close() 无效,并且在关闭该流后可以调用此类中的各个方法,而不会产生任何 IOException。 -原创 2016-05-25 22:04:35 · 418 阅读 · 0 评论 -
Java IO - PushbackInputStream&PushbackReader
基本概念 这里将 PushbackInputStream 和 PushbackReader 放到一起讨论主要是二者的原理机制几乎一模一样,掌握其一即可。它们分别表示 字节推回流、字符退回流。 所谓推回,其实就是将从流读取的数据(严格来讲也可以是不从流读取的数据)再推回到流中。实现原理也很简单,通过一个缓冲数组来存放推回的数据,每次操作时先从缓冲数组开始,然后再操作流对象。 下面来看看它俩的继承结构原创 2016-05-31 21:39:37 · 2232 阅读 · 1 评论 -
Java IO - DataInputStream&DataOutputStream
基本概念 DataInputStream 数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型。应用程序可以使用数据输出流写入稍后由数据输入流读取的数据。 DataOutputStream 数据输出流允许应用程序以适当方式将基本 Java 数据类型写入输出流中。然后,应用程序可以使用数据输入流将数据读入。 实例探究 注意:写入的顺序要和读取的顺序一致 public cl原创 2016-06-02 20:32:04 · 375 阅读 · 0 评论 -
Java IO - ObjectInputStream&ObjectOutputStream
基本概念 对象流(ObjectInputStream 和 ObjectOutputStream)的作用是,对基本数据和对象进行序列化操作支持。 只有支持 java.io.Serializable 或 java.io.Externalizable 接口的对象才能被ObjectInputStream/ObjectOutputStream所操作 实例探究public class Test { pri原创 2016-05-22 19:56:09 · 449 阅读 · 0 评论 -
Java IO - SequenceInputStream
基本概念 作用:当我们需要从多个输入流读取数据时,就可以使用合并(SequenceInputStream)将其合并一个输入流。 特性:合并流会按照添加的顺序从第一个输入流开始读取,到最后一个输入流结束。 继承:SequenceInputStream 同样地也继承自 InputStream 类 实例探究1.将两个输入流合并public static void main(String[] args)原创 2016-05-21 14:31:40 · 480 阅读 · 1 评论 -
Java IO - FilterReader&FilterWriter
基本概念 字符过滤流(FilterReader/FilterWriter)与 字节过滤流(FilterInputStream / FilterOutputStream )的原理一致,都是通过操作要过滤的流本身的方法来实现。 唯一的不同就是字符过滤流是抽象类,而字节过滤流不是。 源码分析1.FilterReader首先来看它的结构图观察一下源码,发现坐在 FilterReader 中不外乎地都调用流本原创 2016-05-31 20:04:10 · 746 阅读 · 0 评论 -
Java IO - FilterInputStream&FilterOutputStream
基本概念 FilterInputStream / FilterOutputStream (过滤输出流/过滤输入流)这两个类分别继承了 Inpustream 与 OutputStream ,提供的作用 “封装其它的输入流,并为它们提供额外的功能“。 但是FilterInputStream和FilterOutputStream 本身并没给出其它额外的功能实现,只是做了一层简单地封装。那么实现额外功能的实原创 2016-05-26 20:08:43 · 565 阅读 · 0 评论 -
Java IO - Reader&Writer
基本概念 Reader/Writer(字符读取流/字符写入流),是所有字符操作流的父类。 它们本身是抽象类,主要实现方法包括 Reader(read,skip ),Writer(writer,append)。 继承结构如下: 源码分析1.Reader结构图成员变量/* * 用来在流上同步操作的对象。 * 为了提高效率,字符流对象可以使用其自身以外的对象来保护关键部分。 * 因此,子类应使用此字原创 2016-05-25 21:17:28 · 463 阅读 · 0 评论 -
Java IO - InputStream&OutputStream
基本概念InpuStream/OuputStream(字节输入流/字节输出流),它们都是抽象类,并且都实现了 Closeable 接口,表示所有字节(byte)输入流(输出流)的类。源码分析1.InputStream类结构如下通过类结构图,发现它定义了一个成员常量,从字面的意思来看是指缓冲数组的最大容量,具体的意思需要结合 skip 方法理解,下面会提到。//表示跳跃(丢弃)操作时能丢弃的最大数量原创 2016-05-24 20:19:10 · 489 阅读 · 0 评论 -
Java IO - PipedReader& PipedWriter
基本概念 PipedReader& PipedWriter(管道字符输入流&管道输符字节流)是配套使用的。可以将管道输出流连接到管道输入流来创建通信管道。 详细用法参见管道字节流 继承关系: 源码探究2.PipedReader类结构图成员变量,同 PipedInputStream,这里不再分析private static final int DEFAULT_PIPE_SIZE = 1024; boo原创 2016-06-16 21:56:58 · 468 阅读 · 0 评论 -
Java IO - PipedOutputStream & PipedInputStream
基本概念 PipedOutputStream & PipedInputStream (管道字节输入流&管道输出字节流)是配套使用的。可以将管道输出流连接到管道输入流来创建通信管道。 通常的用法是让两个线程分别操作输入输出流,由输出流向管道写入数据,然后再由输出流从管道中读取数据。不建议对这两个对象尝试使用单个线程,因为这样可能会造成该线程死锁。 继承关系: 实例探究1.生产者&消费者 定义两个线程代原创 2016-06-16 21:36:42 · 572 阅读 · 0 评论 -
Java IO - FileInputStream&FileOutputStream
基本概念 FileInputStream 从文件系统中的某个文件中获得输入字节 FileOutputStream 文件输出流是用于将数据写入 File 或 FileDescriptor 的输出流。文件是否可用或能否可以被创建取决于基础平台。特别是某些平台一次只允许一个 FileOutputStream(或其他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将原创 2016-06-01 21:30:17 · 522 阅读 · 0 评论 -
Java IO - ByteArrayInputStream&ByteArrayOutputStream
基本概念 ByteArrayInputStream:字节数组输入流,继承自 InputStream。它会在内存中创建一个字节数组缓冲区,从输入流读取的数据保存在该字节数组缓冲区中。 ByteArrayOutputStream:字节数组输出流,继承自OutputStream是与 ByteArrayInputStream 相对应的输出流。 实例探究1.ByteArrayInputStream下面来看一个原创 2016-05-22 17:31:16 · 588 阅读 · 0 评论 -
Java IO - InputStreamReader&OutputStreamWriter
基本概念 InputStreamReader / OutputStreamWriter 这两个类分别继承了 Reader与 Writer,它们提供了从字节流到字符流的转换。 在转换的过程中,既可以使用平台默认的字符编码也可以手动指定。如果需要更多地控制编码过程,则应该使用 CharsetEncoder 类。 真正负责转换工作的是 StreamDecoder 类 实例探究下面先来一个简单使用例子pub原创 2016-05-26 21:19:15 · 419 阅读 · 0 评论 -
Java IO - FileReader&FileWriter
基本概念 字符文件操作流(FileReader/ FileWriter),本身不做任何具体实现,所有操作都是通过字符字节转换流进行转换后再调用字节文件操作流(FileInputStream/FileOutputStream)来完成。 源码探究没有什么可探究,具体探究见 FileInputStream/FileOutputStream。1.FileReaderpublic class FileRead原创 2016-05-31 21:49:59 · 418 阅读 · 0 评论