JavaIO/NIO流
瘦子没有夏天
大家好,我是Leon。一个专业与Java领域的程序员,偶尔理理财。欢迎大家来阅读我博客,如果你发现极个别文章和书籍内容雷同,请叫我勤奋的code搬运工٩(๑❛ᴗ❛๑)۶。我的邮箱:gyoomi0709@foxmail.com
展开
-
IO流之DataOutputSteam和DataInputSteam原理研究
编码知识预备ASCII码 1、共计128字符; 2、8bit即单字节字符; 3、最高位前面统一规定为0; 4、例如:65(二进制0100 0001)是A。 非ASCII码 1、什么是非ASCII码? 英语用128个符号编码就够了,但是用来表示其他语言,128个符号是不够的。 Unicode 1、什么是Unicode? Unicode当然是一个很大的集合,现在的规模可...原创 2018-06-02 21:37:50 · 964 阅读 · 1 评论 -
Java NIO之Selector
一、Java NIO 的核心组件Java NIO的核心组件包括:Channel(通道),Buffer(缓冲区),Selector(选择器),其中Channel和Buffer比较好理解 简单来说 NIO是面向通道和缓冲区的,意思就是:数据总是从通道中读到buffer缓冲区内,或者从buffer写入到通道中。二、Java NIO Selector1. Selector简介选择器...转载 2018-06-26 14:00:24 · 299 阅读 · 0 评论 -
IO流之BufferedWriter和BufferedReader原理研究
BufferedWriter和BufferedReader的定义BufferedWriter “缓存字符输出流”,内置一个缓存字符数组,每次写入前都会先检查缓存数组,是否已满,满了把缓存数组写入。否则将内容放到缓存数组中去。newLine()方法 “换行方法”BufferedReader “缓存字符输入流”,内置一个缓存字符数组,每次读取都会先去缓冲数组中读取,如果已读完,则会在家流...原创 2018-06-10 15:14:37 · 1492 阅读 · 0 评论 -
Java NIO 之Channel
定义用于源节点和目标节点之间的连接。nio中负责缓冲区中数据传输,Channel本地并不存储数据,而是配合缓冲区进行数据传输。你可以把它理解成io中的流。结构(java.nio.channels.Channel)Channel接口实现类 FileChannelSocketChannel(用于TCP通讯)ServerSocetChannel(用于监听端口)Datagram...原创 2018-06-22 23:11:33 · 307 阅读 · 0 评论 -
IO流之FileReader和FileWriter原理研究
FileReader和FileWriter介绍FileReader “文件字符输入流”,一般用于读取文本形式的文件,也可以用来读取字节形式文件,但是会存在乱码问题。FileWriter原理分析FileReader构造方法 // 构造器1 // 可以看出其底层传入依然是字节流,只是依赖了InputStreamReader进行编码和解码操作 // 其余构造器...原创 2018-06-08 11:52:36 · 1055 阅读 · 0 评论 -
Java NIO之Buffer
缓冲区基础本质上,缓冲区是就是一个数组。所有的缓冲区都具有四个属性来提供关于其所包含的数组的信息。它们是:容量(Capacity) 缓冲区能够容纳的数据元素的最大数量。容量在缓冲区创建时被设定,并且永远不能被改变。上界(Limit) 缓冲区里的数据的总数,代表了当前缓冲区中一共有多少数据。位置(Position) 下一个要被读或写的元素的位置。Position会自动由相应的 get(...转载 2018-06-22 14:29:19 · 302 阅读 · 0 评论 -
IO流之ZipInputStream和ZipOutputStream的认识及常用使用
ZipInputStream和ZipOutputStream定义压缩流 在日常中经常会使用到zip或rar这样的压缩文件,更加便利了我们日常文件的传输和使用。当然在java中 也提供了相应的输入输出流来压缩和解压gzip、zip和rar这样的文件。ZipInputStream “压缩文件输入流”,用于读取磁盘上的压缩文件ZipOutputStream “压缩文件输出流”,用于将程...原创 2018-06-07 16:52:01 · 23932 阅读 · 2 评论 -
IO流之BufferedInputStream和BufferedOutputStream原理研究
BufferedInputStream和BufferedOutputStream介绍BufferedInputStream 定义 是缓冲输入流,它继承于FilterInputStream。作用 为需要包装的输入流提供了缓冲功能以及如mark()等其他功能。实现 实质是通过内部一个缓存数组来实现“缓冲区”的功能。BufferedOutputStream 定义 缓存字节输出流,...原创 2018-06-04 20:45:50 · 685 阅读 · 0 评论 -
IO流之ByteArrayInputStream和ByteArrayOutputStream原理研究
###ByteArrayOutputStream和ByteArrayInputStream介绍 - 概念 - ByteArrayOutputStream “字节数组输出流”,内部有有一个缓存字节的数组作为缓存区,所有发送到输出流的数据保存在该字节数组缓冲区中。 其中字节的数组的数据顺序和数量很重要。 - ByteArrayInputStream ...原创 2018-06-03 22:56:37 · 752 阅读 · 0 评论 -
Java中序列化实现原理研究
1.什么是序列化和反序列化序列化 是指将Java对象保存为二进制字节码的过程。反序列化 将二进制字节码重新转成Java对象的过程。2.为什么序列化我们知道,一般Java对象的生命周期比Java虚拟机短,而实际的开发中,我们需要 在Jvm停止后能够继续持有对象,这个时候就需要用到序列化技术将对象持久到磁盘或数据库。在多个项目进行RPC调用的,需要在网络上传输JavaB...原创 2018-05-31 17:25:39 · 12894 阅读 · 6 评论