随笔分类 -  Java IO

摘要:本篇讲述的是java io包中的FilterReader/FilterWriter,它们同FilterInputStream/FilterOutputStream一样,是Reader和Writer的包装类,为Reader/Writer提供了更多的功能,下面先贴上源码,对其进行简单的分析。 Filte 阅读全文
posted @ 2017-10-30 09:20 moonfish 阅读(603) 评论(0) 推荐(0)
摘要:本篇讲述的java io包中的FileReader/FileWriter。它们的功能与前面讲过的FileInputStream/FileOutputStream基本类似,只是前者是基于字符流后者是基于字节流,它们都能从文件中读取或者写入数据,下面先贴上源码进行简单的分析。 FileReader: F 阅读全文
posted @ 2017-10-27 15:17 moonfish 阅读(337) 评论(0) 推荐(0)
摘要:本篇讲述的是java io包中的PushbackInputStream类。我们知道,通常情况下我们从流中读取数据时都是顺序操作的,也许流中的数据并不都是我们需要的,按照平常的流,我们要做的是就是将流中的数据依读取取出,并对取出的数据进行筛选,不符合条件的数据就丢弃。PushbackInputStre 阅读全文
posted @ 2017-10-14 22:03 moonfish 阅读(373) 评论(0) 推荐(0)
摘要:本篇讲述的是java io包中的DataInputStream和DataOutputStream。 这两个类都属于java io中的包装类,为基础流提供了丰富的读写方法,可以将java中的数据类型轻松地写入流中。 下面还是先贴出源码进行简单的分析:DataInputStream.java: Data 阅读全文
posted @ 2017-10-11 22:33 moonfish 阅读(411) 评论(0) 推荐(0)
摘要:本篇讲述的内容是java io中的RandomAccessFile。 RandomAccessFile是java io体系中提供给我们的一种文件访问类,它自己同时包含了读写功能,当然它最大的特点是可以自由访问文件中的位置,无需从头开始访问,下面先贴上RandomAccessFile的源码,通过源码对 阅读全文
posted @ 2017-10-10 22:06 moonfish 阅读(562) 评论(0) 推荐(0)
摘要:本篇讲述的是java io包中的BufferedReader和BufferedWriter。从名字中可以看出它们分别是Reader和Writer的子类,它们的特点是在对流进行读写操作时,内置了缓存区,通过减少与磁盘之间IO操作的此处,从而提升了读写效率,下面我们来简要的看看它们的源码。 Buffer 阅读全文
posted @ 2017-10-04 20:23 moonfish 阅读(513) 评论(0) 推荐(0)
摘要:本篇讲述的是java io包中的BufferedInputStream类和BufferedOutputStream类。 下面我们通过源码分别对这两个类进行学习。 1.BufferedInputStream: BufferedOutputStream: 上面部分为对源码的简单分析,下面用一个简单的小例 阅读全文
posted @ 2017-09-27 12:08 moonfish 阅读(338) 评论(0) 推荐(0)
摘要:本篇讲述的是java io包中的FilterInputStream和FilterOutputStreaem,老规矩,先附上两个类的源码。 FilterInputStream: FilterOutputStream: 从上面的源码中可以看出,两个类中很多的方法其实仅仅只是直接调用了OutputStre 阅读全文
posted @ 2017-09-22 13:48 moonfish 阅读(414) 评论(0) 推荐(0)
摘要:本篇要学习的是java io包中的FileInputStream类和FileOoutputStream类。 文件是我们常见的数据源之一,所以java为我们封装好了支持文件读写的流工具,下面我们通过源码分别来学习这两个类。 FileInputStream.java: FileOutput.java: 阅读全文
posted @ 2017-09-20 16:14 moonfish 阅读(371) 评论(0) 推荐(0)
摘要:本篇讲述的是java io包中的StreamTokenizer类。 StreamTokenize类可以将任意的输入流分割为一系列标记(token),然后可以每次读取一个标记,先附上源码,进行简单地分析。 StreamTokenizer.java: 源码可能乍一眼看起来没有一些直观的认识,下面将通过一 阅读全文
posted @ 2017-09-14 09:51 moonfish 阅读(720) 评论(0) 推荐(1)
摘要:本篇讲述的是位于java io包中的Bits类。 这是一个工具类,其中封装好了一些方法,用于处理原始数据和字节数据之间的转化,下面先附上源码。 我们可以看出,这个类定义时并没有使用public修饰符修饰,所以只是java内部使用的工具类,方便其进行一些数据间的交流。 通过方法调用的搜索,我们可以看到 阅读全文
posted @ 2017-09-12 22:07 moonfish 阅读(450) 评论(0) 推荐(0)
摘要:本篇讲述的是java io中的reader和writer。跟之前讲述的InputStream和OutputStream一样为io流中的抽象父类之一,不过Reader和Writer的操作对象不再是字节而是字符了。下面也不多说,贴上源码来加深我们的理解。 Reader.java Writer.java 阅读全文
posted @ 2017-09-07 15:18 moonfish 阅读(211) 评论(0) 推荐(0)
摘要:由于在看io源码中偶尔看到FileDescriptor,所以本篇决定讲讲FileDescriptor,从字面上来看它就是文件描述符。 官方是这么描述的: 可以看出,FileDescriptor可以看做一种指向文件引用的抽象化概念。它能表示一个开放文件,一个开放的socket或者一个字节的源。它最主要 阅读全文
posted @ 2017-08-24 12:27 moonfish 阅读(554) 评论(0) 推荐(0)
摘要:本篇将要讲述的内容是java io中的DataInput 和 DataOutput。 就像前面讲述的RandomAccessFile一样,它实现的就是这两个接口,这两个接口分别提供了从流中读取二进制数据转化为java基本数据和向流中写入由java基本数据转成的二进制数据,功能十分强大。 下面还是先贴 阅读全文
posted @ 2017-08-18 16:29 moonfish 阅读(1067) 评论(0) 推荐(0)
摘要:本篇讲述的内容是java io中的InputStream和OutputStream。 我们知道流是一种抽象的概念,抽象了输入输出设备。在java中,所有的流对象都位于java.io包中,其中有4个流是特殊的,通过它们可以衍生出所有的流对象,它们分别是InputStream/OutputStream和 阅读全文
posted @ 2017-08-18 16:27 moonfish 阅读(189) 评论(0) 推荐(0)
摘要:本篇讲的内容是序列化,以及ObjectInputStream和ObjectOutputStream流。 我们知道java是基于对象编程的,我们前面在进行流传输数据时,要么是以字节传输,要么是以字符传输,如果能在流中传输对象岂不是更为方便,幸运的是java在这个方面提供了支持,序列化和反序列技术帮我我 阅读全文
posted @ 2017-08-15 17:38 moonfish 阅读(321) 评论(0) 推荐(0)
摘要:本篇讲的java io中的SequenceInputStream流。 SequenceInputStream是一个合并流,当我们从多个流中读取数据,并希望他们合并成一个流作为数据源时,我们就可以使用SequenceInputStream。它的内部是通过Vector来实现的,至于Vector是什么会在 阅读全文
posted @ 2017-08-15 17:37 moonfish 阅读(251) 评论(0) 推荐(0)
摘要:在前面的篇幅中我们有用到过System.int,System.out,那么它们是怎么工作的呢,本篇将来简单的说说它们。 从源码中看出System.in,System.out,System.err都是System类中的静态属性,如图所示: 可以看出System.in是一个InputStream,Sys 阅读全文
posted @ 2017-08-15 09:25 moonfish 阅读(204) 评论(0) 推荐(0)
摘要:本篇要讲述的是CharArrayReader和CharArrayWriter两个类。它们两个同之前的ByteArrayInputStream和ByteArrayOutputStream和相似,两者的主要区别是前者是基于字符数组来工作的,后者是基于字节数组来创建的。 下面先说说CharArrayRea 阅读全文
posted @ 2017-08-14 16:57 moonfish 阅读(189) 评论(0) 推荐(0)
摘要:今天讲的是ByteArrayInputStream流和ByteArrayOutputStream流。 首先让我们来看看ByteArrayOutputStream的源码: ByteArrayOutputStream.java 从源码可以看出,该类继承了OutputStream输出流,其中封装了一个by 阅读全文
posted @ 2017-08-14 14:21 moonfish 阅读(242) 评论(0) 推荐(0)