FilterOutputStream 介绍 FilterOutputStream 的作用是用来“封装其它的输出流,并为它们提供额外的功能”.它主要包括BufferedOutputStream, DataOutputStream和PrintStream. (01) BufferedOutputStream的作用就是为“输出流提供缓冲功能”. (02) DataOutputStream 是用来装饰其它输出流,将DataOutputStream和DataInputStream输入流配合使用,“允许应用…
目录:系统学习 Java IO---- 目录,概览 BufferedInputStream BufferedInputStream 类为输入流提供缓冲. 缓冲可以加快IO的速度. BufferedInputStream 不是一次从网络或磁盘读取一个字节,而是一次将更大的块读入内部缓冲区. 当从 BufferedInputStream 读取一个字节时,您正在从其内部缓冲区中读取它. 当缓冲区被完全读取时,BufferedInputStream 将另一个更大的数据块读入缓冲区. 这通常比从 Inpu…
Java IO 类的系统教程,原创.主要参考自英文教程 Java IO Tutorial 和 Java Doc. http://tutorials.jenkov.com/java-io/index.html 目的:掌握 Java IO 几乎所有类的基础用法,完全知道什么时候应该使用什么类. 分开学习,先系统学习 IO 所有的类,再另外学习 NIO . 目录: 系统学习 Java IO (一)----输入流和输出流 InputStream/OutputStream 系统学习 Java IO (二)…
java io 系列目录如下: 01. java io系列01之  "目录" 02. java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream) 03. java io系列03之 ByteArrayOutputStream的简介,源码分析和示例(包括OutputStream) 04. java io系列04之 管道(PipedOutputStream和PipedInputStream)的简介,源码分析和示例 05. java…
本章内容包括3个部分:BufferedInputStream介绍,BufferedInputStream源码,以及BufferedInputStream使用示例. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_12.html BufferedInputStream 介绍 BufferedInputStream 是缓冲输入流.它继承于FilterInputStream.BufferedInputStream 的作用是为另一个输入流添加一些功能,例…
本章内容包括3个部分:BufferedOutputStream介绍,BufferedOutputStream源码,以及BufferedOutputStream使用示例. 转载请注明出处:http://www.cnblogs.com/skywang12345/p/io_13.html BufferedOutputStream 介绍 BufferedOutputStream 是缓冲输出流.它继承于FilterOutputStream.BufferedOutputStream 的作用是为另一个输出流提…
java io系列01之 "目录" java io系列02之 ByteArrayInputStream的简介,源码分析和示例(包括InputStream) java io系列03之 ByteArrayOutputStream的简介,源码分析和示例(包括OutputStream) java io系列04之 管道(PipedOutputStream和PipedInputStream)的简介,源码分析和示例 java io系列05之 ObjectInputStream 和 ObjectOut…
Java IO(九)FilterInputStream 和 FilterOutputStream 一.介绍 FilterInputStream 和 FilterOutputStream 是过滤字节输入流和过滤字节输出流.它们的作用是封装其他的基础流,并为它们提供额外的功能.它们的子类分别有: 缓冲流:BufferedInputStream 和 BufferedOutputStream 数据流:DataInputStream 和 DataOutputStream 回退流:PushBackInput…
接着上篇文章,本篇继续说java.io包中的字节流.按照前篇文章所说,java.io包中的字节流中的类关系有用到GoF<设计模式>中的装饰者模式,而这正体现在FilterInputStream和FilterOutputStream和它的子类上,我们这篇就来看一看. 0. FilterInputStream和FilterOutputStream 首先,这两个都分别是InputStream和OutputStream的子类.而且,FilterInputStream和FilterOutputStrea…
FilterInputStream FilterInputStream 的作用是用来"封装其它的输入流,并为它们提供额外的功能".它的常用的子类有BufferedInputStream和DataInputStream.BufferedInputStream的作用就是为"输入流提供缓冲功能,以及mark()和reset()功能".DataInputStream 是用来装饰其它输入流,它"允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型&…
----------------------------------------------------------------------------------- FilterInputStream.FilterOutputStream 过滤器字节输入流.输出流,这里用到了装饰器模式,它的主要用途在于给一个对象动态的添加功能. 当我们在创建FilterInputStream.FilterOutputStream这两个类的实例时需要传入一个InputStream.OutPutStream的子类…
Java IO(十九)PrintStream 和 PrintWriter 一.介绍 (一).PrintStream PrintStream 是打印输出流,它继承于FilterOutputStream.PrintStream 为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式.它还提供其他两项功能.与其他输出流不同,PrintStream 永远不会抛出 IOException:而是,异常情况仅设置可通过 checkError 方法测试的内部标志.另外,为了自动刷新,可以创建一个 Pri…
前言 流是干什么的:为了永久性的保存数据. IO流用来处理设备之间的数据传输(上传和下载文件) java对数据的操作是通过流的方式. java用于操作流的对象都在IO包中. java IO系统的学习,本质上就是对文件的读写操作. File类 java中使用File来抽象一个文件,无论是普通文件还是目录,都可应对与一个File对象. File只是抽象的代表来磁盘上的某个文件或者目录,内部实际上是依赖一个平台无关的本地文件系统类. File无法对其所表示的文件内容进行任何读写操作(那是流做的事情).…
FilterInputStream 介绍 FilterInputStream 的作用是用来“封装其它的输入流,并为它们提供额外的功能”.它的常用的子类有BufferedInputStream和DataInputStream. BufferedInputStream的作用就是为“输入流提供缓冲功能,以及mark()和reset()功能”. DataInputStream 是用来装饰其它输入流,它“允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型”.应用程序可以使用DataOu…
一.流的分类 1.输入流和输出流 按照流的流向来分,可以分为输入流和输出流 输入流:只能从中读取数据,而不能向其写入数据. 输出流:只能向其写入数据,而不能从中读取数据. 此处的输入.输出涉及一个方向的问题,数据从内存到硬盘,通常称为输出流.(即这里的 输入.输出都是从程序运行所在内存的角度来划分的).Java的输入流主要由InputStream和 Reader作为基类,而输出流则要由OutputStream和Writer作为基类.它们都是一些抽象基类 ,无法直接创建实例. 2.字节流和字符流…
参考之前整理过的Java序列化与反序列化:https://www.cnblogs.com/BigJunOba/p/9127414.html 使用对象输入输出流可以实现对象序列化与反序列化,可以直接存取对象. 将对象存入一个流被称为序列化,而从一个流将对象读出被称为反序列化. 对象序列化与反序列化的过程: 1.被序列化的对象必须实现java.io.Serializable接口,否则不能实现序列化. public class Employee implements Serializable{ ...…
1.NIO的使用说明:>Java NIO (New IO,Non-Blocking IO)是从Java 1.4版本开始引入的一套新的IO API,可以替代标准的Java IO AP.>NIO与原来的IO同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的(IO是面向流的).基于通道的IO操作.>NIO将以更加高效的方式进行文件的读写操作.>随着 JDK 7 的发布,Java对NIO进行了极大的扩展,增强了对文件处理和文件系统特性的支持,以至于我们称他们为 NIO.2.…
java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? 不带缓冲的操作,每读一个字节就要写入一个字节. 由于涉及磁盘的IO操作相比内存的操作要慢很多,所以不带缓冲的流效率很低. 带缓冲的流,可以一次读很多字节,但不向磁盘中写入,只是先放到内存里. 等凑够了缓冲区大小的时候一次性写入磁盘,这种方式可以减少磁盘操作次数,速度就会提高很多! 这就是两者的区别…
前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字符流可以一个一个字符的读取,也可以一行一行字符的读取. 字符流类型 字符流类型包括Writer和Reader及其子类如图所示 Writer的子类 名称 说明 BufferedWriter 将文本写入字符输出流,缓冲各个字符,从而提供单个字符.数组和字符串的高效写入. CharArrayWriter…
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表.字节流和字符流的区别…
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表. 字节流和字符流的区…
概要 字节流有两个核心抽象类:InputStream 和 OutputStream.所有的字节流类都继承自这两个抽象类. InputStream 负责输入,OutputStream 负责输出. 字节流主要操作byte类型数据. 以下为 JDK8 版本中字节流的族谱图: 具体详情可查看Java API文档.…
Java中的输入是指从数据源等读到Java程序中,这里的数据源可以是文件,内存或网络连接,输出则是指从Java程序中写到目的地. 输入输出流可以分为以下几种类型(暂时不考虑File类) 类名 中文名 InputStream 字节输入流 OutputStream 字节输出流 Reader 字符输入流 Writer 字符输出流 Java IO共涉及40多个类,下图是字节流各个类之间的关系 InputStream InputStream的子类及其说明有如下所示 名称 说明 BufferedInputS…
Java输入/输出流体系中常用的流分类(表内容来自java疯狂讲义) 注:下表中带下划线的是抽象类,不能创建对象.粗体部分是节点流,其他就是常用的处理流. 流分类 使用分类 字节输入流 字节输出流 字符输入流 字符输出流   抽象基类 InputStream OutputStream Reader Writer 节点流 访问文件 FileInputStream FileOutStream FileReader FileWriter 访问数值 ByteArrayInputStream ByteAr…
装饰模式(Decorator) 装饰模式又名包装(Wrapper)模式. 装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案. 装饰模式通过创建一个包装对象,也就是装饰,来包裹真实的对象. 装饰模式以对客户端透明的方式动态地给一个对象附加上更多的责任.换言之,客户端并不会觉得对象在装饰前和装饰后有什么不同. 装饰模式可以在不创造更多子类的情况下,将对象的功能加以扩展. 装饰模式把客户端的调用委派到被装饰类.装饰模式的关键在于这种扩展是完全透明的. 装饰模式的角色 抽象构件角色(…
文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节.       IO框架 从上图我们可以看出IO可以分为两大块 字节流和字符流 字节流是 InputStream 和 OutputStream 分别对应输入与输出 字符流是Reader和Writer分别对应输入与输出        ByteArrayInputStream  它字节数组输入流.继承于InputS…
数据流分类: 流序列中的数据既可以是未经加工的原始二进制数据, 也可以是经一定编码处理后符合某种格式规定的特定数据. 因此Java中的流分为两种: 1) 字节流:数据流中最小的数据单元是字节 2) 字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节. 主要的类如下: 1. File(文件管理):如生成新目录,修改文件名,删除文件,判断文件所在路径等. 2. InputStream(二进制操作):抽象类,基于字节的输入操作,是所有输入流的父类.定义了…
Java输入/输出流体系中常用的流分类(表内容来自java疯狂讲义) 注:下表中带下划线的是抽象类,不能创建对象.粗体部分是节点流,其他就是常用的处理流. 流分类 使用分类 字节输入流 字节输出流 字符输入流 字符输出流   抽象基类 InputStream OutputStream Reader Writer 节点流 访问文件 FileInputStream FileOutStream FileReader FileWriter 访问数值 ByteArrayInputStream ByteAr…
Java IO流的分类 Java中的流,可以从不同的角度进行分类. 按流向分类: 输入流: 程序可以从中读取数据的流.输出流: 程序能向其中写入数据的流. 按数据传输单位分类: 字节流:以字节(8位二进制)为单位进行处理.主要用于读写诸如图像或声音的二进制数据. 字符流:以字符(16位二进制)为单位进行处理. 都是通过字节流的方式实现的.字符流是对字节流进行了封装,方便操作.在最底层,所有的输入输出都是字节形式的. 后缀是Stream是字节流,而后缀是Reader,Writer是字符流. 按功能…
什么是stream?stream就是一个长度不确定的有序字节序列. Input streams move bytes of data into a Java program from some generally external source. Output streams move bytes of data from Java to some generally external target 1)streams来自哪里? 我们最先接触到的input stream,就是system.in,…