
JavaIO详解
文章平均质量分 95
程序员潇然
微信搜索: 疯狂的字节X 免费第一时间获得更新哦
展开
-
[二十六]JavaIO之再回首恍然(如梦? 大悟?)
流分类回顾本文是JavaIO告一段落的总结帖希望对JavaIO做一个基础性的总结(不涉及NIO)从实现的角度进行简单的介绍下面的这两个表格,之前出现过数据源形式 InputStream OutputStream Reader Writer ByteArray(字节数组) ByteArrayInputStream ...原创 2018-09-14 16:13:00 · 137 阅读 · 0 评论 -
[三]JavaIO之IO体系类整体设计思路 流的概念以及四大基础分类
从本文开始,将正式进入JavaIO的简介在继续javaIO系列的文章之前可以过去看一下 本人博客上的设计模式中的 适配器模式和装饰器模式这会对接下来的阅读大有帮助本文是从逻辑上介绍整个的Java IO类家谱画像.1.流计算机以及互联网的世界发展不过短短几十年,但是这几十年却是日新月异系统的复杂度也越来越高,程序设计语言的抽象程度也越来越高但是无论如...原创 2018-09-09 13:59:00 · 317 阅读 · 0 评论 -
[四] JavaIO之类层次体系结构横向比对
IO家族类层次体系结构横向匹配上一篇文章中主要介绍了JavaIO流家族的整体设计思路,简单回顾下基本逻辑涉及数据源 流的方向,以及流的数据形式这三个部分的组合按照流的数据形式和流的方向,组合而来了四大家族,分别是:InputStream/OutputStream Reader/Writer数据源与四大家族的组合构成了IO流的基本功能数据源形式 InputStre...原创 2018-09-09 20:52:00 · 314 阅读 · 0 评论 -
[七]JavaIO之 PipedInputStream 和 PipedInputStream
管道简介管道的含义,很久之前就已经出现用于表示数据直接交互它的含义与平时说的管道的含义是类似的,就是直连JavaIO中的 PipedInputStream 和 PipedOutputStream 就是IO体系中字节流的管道java中,PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流使用管道通信时,必须将PipedOutpu...原创 2018-09-11 17:38:33 · 3218 阅读 · 0 评论 -
[六]JavaIO之 ByteArrayInputStream与ByteArrayOutputStream
功能简介ByteArrayInputStream 和ByteArrayOutputStream提供了针对于字符数组 byte [] 的标准的IO操作方式ByteArrayInputStream将会给一个byte buf[] 提供标准的IO操作方式ByteArrayOutputStream则是将数据写入到内部的字节数组中ByteArrayInputStream 详...原创 2018-09-11 15:24:47 · 3289 阅读 · 0 评论 -
[五] JavaIO之InputStream OutputStream简介 方法列表说明
InputStream 和 OutputStream 对于字节流的输入和输出是作为协议的存在所以有必要了解下这两个类提供出来的基本约定这两个类是抽象类,而且基本上没什么实现,都是依赖于子类具体的去实现但是他是对于其子类 协议纲领一般的存在了解清楚每一个方法含义,对于后续具体的子类将会有非常大的帮助基本含义InputStream 所有字节输入流的 超类 他是一...原创 2018-09-10 12:30:00 · 222 阅读 · 0 评论 -
[二] JavaIO之File详解 以及FileSystem WinNTFileSystem简介
File类文件和目录路径名的抽象表示形式。我们知道,对于不同的操作系统,文件路径的描述是不同的比如windows平台:用\linux平台:用/File是Java为了这一概念提供的抽象描述,与系统无关的视图抽象路径名有两个组件:1.可选的与系统有关的前缀 字符串 比如盘符,"/" 表示 UNIX 中的根目录,"\\\\" 表示 Microsoft Wind...原创 2018-09-08 17:35:00 · 1040 阅读 · 0 评论 -
[十四]JavaIO之PrintStream
功能简介 PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式 装饰器模式中具体的装饰类 它提供的功能就是便捷的打印各种数据形式 FilterInputStream为装饰器模式中的抽象角色 简言之,PrintStream可以快捷的打印输出各种类型的数据 关键字段autoFlush是否自动刷新的标志位...原创 2018-09-12 22:24:00 · 239 阅读 · 0 评论 -
[十三]JavaIO之PushBackInputStream
功能简介PushBackInputStream是针对于输入的一种扩展功能装饰器模式中的具体的装饰类,抽象的装饰器为FilterInputStreamPushBackInputStream的重点在于理解缓冲区的使用手段流本身不支持回退功能,想要能够pushBack 显然必须能够缓存数据PushBackInputStream内部维护了一个字节数组 不要想当然...原创 2018-09-12 13:36:00 · 470 阅读 · 0 评论 -
[十二]JavaIO之BufferedInputStream BufferedOutputStream
功能简介BufferedInputStream 和 BufferedOutputStream一样,他们都是过滤流装饰器模式下具体的装饰类用来装饰InputStream以及OutputStream下的其他的具体的实现类比如FileInputStream BufferedInputStream 和 BufferedOutputStream 都是在内部...原创 2018-09-12 12:04:00 · 177 阅读 · 0 评论 -
[十一]JavaIO之DataInputStream 和 DataOutputStream
功能简介 DataInputStream和DataOutputStream 继承了各自的FilterInputStream以及FilterOutputStream使用装饰器模式对InputStream和OutputStream进行功能增强 FilterInputStream以及FilterOutputStream 都是Decorator 抽象的装饰器角色(并不是抽象类)...原创 2018-09-12 09:31:00 · 333 阅读 · 0 评论 -
[十]JavaIO之FilterInputStream FilterOutputStream
FilterInputStream FilterOutputStream都是装饰器模式中的Decorator抽象装饰角色他们继承了各自的抽象构建InputStream 和OutputStream 他们内部都包含了一个抽象构建 FilterInputStream FilterOutputStream 既然作为抽象的装饰器角色存在所以他们也不太可能有什么实质性的方法...原创 2018-09-12 09:21:00 · 264 阅读 · 0 评论 -
[七]JavaIO之 PipedInputStream 和 PipedInputStream
管道简介 管道的含义,很久之前就已经出现 用于表示数据直接交互 它的含义与平时说的管道的含义是类似的,就是直连 JavaIO中的 PipedInputStream 和 PipedOutputStream 就是IO体系中字节流的管道 java中,PipedO...原创 2018-09-11 17:25:00 · 167 阅读 · 0 评论 -
[一]FileDescriptor文件描述符 标准输入输出错误 文件描述符
文件描述符当应用程序请求打开或者操作文件时,操作系统为应用程序设置一张文件列表,具体的实现形式此处不深入说明操作系统会提供给你一个非负整数,作为一个索引号,它的作用就像地址或者说指针或者说偏移量这个索引号就用来定位文件数据在内存中的位置.这个概念在类Unix系统叫做文件描述符, linux把所有东西都被看成是文件,比如文件、目录、进程、网络socket、各种硬件设备等这个...原创 2018-09-07 16:54:00 · 1336 阅读 · 0 评论 -
[零] JavaIO入门简介 程序设计语言 为什么需要IO库
本文旨在引申出来Java IO的概念含义,作为学习JavaIO一个起步的了解知识点部分内容引自<计算机操作系统第三版> 操作系统的文件管理 "在现代计算机系统中,要用到大量的程序和数据,因内存容量有限,且不能长期保存,故而平时总是把它们以文件的形式存放在外存中,需要时再随时将它们调入内存。如果由用户直接管理外存上的文件,不仅要求用户熟悉外存特性,了解各种文件的...原创 2018-09-07 13:45:00 · 219 阅读 · 0 评论 -
[八]JavaIO之FileInputStream 与 FileOutputStream
接下来介绍 FileInputStream 和 FileOutputStream现在看名字应该可以看得出来: 他就是从一个文件中读取数据 或者将数据写入到一个文件中 FileInputStream既然是从文件读取数据,那么自然要记录文件本身的信息 所以有文件描述符 fd以及 path路径名 显然,文件描述符是对文件最直接的描述 ...原创 2018-09-12 08:16:00 · 239 阅读 · 0 评论 -
[二十五]JavaIO之RandomAccessFile
功能简介我们之前一直说流顺序的,不能随机访问,的确之前说的IO体系的确如此但是 RandomAccessFile自成一派此类的实例支持对随机访问文件的读取和写入我们之前介绍过DataOutput 和DataInput这是两个接口,约定了从基本数据类型与字节的操作交互方式所以,我们从类层级结构也可以想得到他必然是提供了便捷的读写基本数据类型的方法构造...原创 2018-09-14 15:46:00 · 159 阅读 · 0 评论 -
[二十四]JavaIO之PrintWriter
功能简介PrintWriter 向文本输出流打印对象的格式化表示形式他与PrintStream的逻辑上功能目的是相同的--他们都想做同一件事情--更便捷的格式化打印输出PrintWriter实现了PrintStream 中的所有 print 方法,除了那些用于写入原始字节的方法,对于那些字节,程序应该使用未编码的字节流进行写入 PrintStream会...原创 2018-09-14 09:25:00 · 319 阅读 · 0 评论 -
[二十三]JavaIO之PushbackReader
功能简介PushBackReader允许将字符推回到流的字符流 readerPushBackReader 是一个装饰器模式最寻常的样子 FilterReader 是抽象的装饰器模式 Decoder Reader是抽象构建 Component PushbackReader是具体的装饰器类 ConcreteDecoder 其他的具体的Reader的子类...原创 2018-09-13 20:59:00 · 394 阅读 · 0 评论 -
[二十二]JavaIO之LineNumberReader
功能介绍LineNumberReader是提供了行号的具体的装饰器类跟踪行号的缓冲字符输入流此类定义了方法 setLineNumber(int) 和 getLineNumber(),它们可分别用于设置和获取当前行号默认情况下,行编号从 0 开始该行号随数据读取在每个 行结束符 处递增,并且可以通过调用 setLineNumber(int) 更改行号但是,s...原创 2018-09-13 20:23:00 · 280 阅读 · 0 评论 -
[二十一]JavaIO之BufferedReader 与 BufferedWriter
功能简介BufferedReader 从字符输入流中读取文本,内部缓冲各个字符,从而实现字符、数组和行的高效读取BufferedWriter 将文本写入字符输出流,内部缓冲各个字符,从而提供单个字符、数组和字符串的高效写入 其实本质还是缓冲二字 他们内部都有一个缓冲区,就是一个字符数组 BufferedReader 会尽可能多的将数据读取到自己的缓冲区,然...原创 2018-09-13 19:35:00 · 226 阅读 · 0 评论 -
[二十]JavaIO之StringReader 与 StringWriter
功能简介还记得前面说过的CharArrayReader 和 CharArrayWriter吗?CharArray 是数据源CharArrayReader 是读, 从一个CharArray 中读取,所以需要一个CharArray,通过构造方法传递CharArrayWriter 是写, 写入到一个CharArray中去,所以它内部提供了一个CharArray 用来保存数据...原创 2018-09-13 16:50:00 · 657 阅读 · 0 评论 -
[十九]JavaIO之PipedReader 和 PipedWriter
功能简介还记得PipedInputStream 和 PipedOutputStream么我们之前是这么说的:使用管道通信时,必须将PipedOutputStream和PipedInputStream配套使用大致流程:我们在线程A中向PipedOutputStream中写入数据,这些数据会自动的发送到与PipedOutputStream对应的PipedInputSt...原创 2018-09-13 15:21:00 · 196 阅读 · 0 评论 -
[十八]JavaIO之FileReader 和 FileWriter
简介FileReader FileWriter 都是提供操作文件的便捷类这两个类的实现非常的简单原理回忆下之前的InputStreamReader和OutputStreamWriterInputStreamReader 是转换流,字节通往字符的桥梁OutputStreamWriter是转换流 字符通向字节的桥梁他们是适配器模式,InputStreamRe...原创 2018-09-13 14:16:00 · 126 阅读 · 0 评论 -
[十七]JavaIO之CharArrayReader 和 CharArrayWriter
功能简介CharArrayReader 和 CharArrayWriter, 字符数组作为数据源的字符读写CharArrayReaderCharArrayWriter只需要记住他们的根本, CharArray 是数据源的形式读 CharArrayReader 需要接受一个字符数组作为参数 就是从CharArray 中读,所以需要一个字符数组写 Ch...原创 2018-09-13 13:17:00 · 189 阅读 · 0 评论 -
[十六]JavaIO之InputStreamReader 与 OutputStreamWriter
简介 InputStreamReader OutputStreamWriter是转换流 InputStreamReader 是字节流通向字符流的桥梁,它将字节流转换为字符流. OutputStreamWriter是字符流通向字节流的桥梁,它将字符流转换为字节流. 适配器模式 Reader和Writer 是Target 被适配角色Adaptee......原创 2018-09-13 11:34:00 · 808 阅读 · 0 评论 -
[十五]javaIO之SequenceInputStream
功能简介SequenceInputStream 合并流顾名思义,就是可以吧两个流合并起来他并没有很复杂,单纯的很,仅仅实现了InputStream他拥有两个构造方法 把两个InputStream 或者一个InputStream类型的Enumeration中包含的所有的流 连接起来 public SequenceInputStream(Enu...原创 2018-09-12 23:14:00 · 189 阅读 · 0 评论 -
[六]JavaIO之 ByteArrayInputStream与ByteArrayOutputStream
功能简介ByteArrayInputStream 和 ByteArrayOutputStream提供了针对于字符数组 byte [] 的标准的IO操作方式ByteArrayInputStream将会给一个byte buf[] 提供标准的IO操作方式ByteArrayOutputStream则是将数据写入到内部的字节数组中Byte...原创 2018-09-11 15:13:00 · 1606 阅读 · 0 评论 -
[九]JavaIO之ObjectInputStream 和 ObjectOutputStream
序列化序列化是指把Java对象保存为二进制字节码的过程,Java反序列化是指把二进制码重新转换成Java对象的过程序列化是一种轻量级的持久化,对象都是存活在内存中的,当JVM运行结束,对象便不存在了如果想要对象还能够存在,或者说当你在网络中想要进行对象数据的传输的话,就需要进行序列化说白了就是内存中的数据你要把他变成字节ObjectInputStream 和 ...原创 2018-09-12 09:13:00 · 822 阅读 · 0 评论