![](https://img-blog.csdnimg.cn/20200606103413391.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
I/O
Java I/O操作
ZacharyZheng1
你若精彩,天自安排
展开
-
使用“持久性”
对比序列化前后的对象地址同一个字节序列号数据反序列化得到的相同对象的地址也相同。不同的流产生了完全不同的对象。package com.zachary.io.serializable;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.io.Se原创 2020-06-03 16:55:49 · 217 阅读 · 0 评论 -
序列化控制
实现Externalizable重写writeExtrenal()和readExternal()方法。这两个方法在序列化和反序列化的时候会自动调用。package com.zachary.io.serializable;import java.io.Externalizable;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.Obj原创 2020-06-03 16:46:34 · 162 阅读 · 0 评论 -
对象序列化
Java序列化将那些实现了Serializable接口的对象转换成一个字节序列,并能够将字节序列恢复成原来的对象。利用它可以实现轻量化的持久性。对象序列化加入到语言中是为了支持两种主要特性。一是Java远程调用,它使存活于其它计算机上的对象使用起来就向存活于本机一样。当向远程发送数据时,需要序列化来传送参数和返回值。只要对象实现了Serializable接口,对象序列化出理就会非常简单。ObjectOuputStream ObjectInputStream对象序列化demopackage c.原创 2020-06-03 16:26:05 · 99 阅读 · 0 评论 -
压缩
压缩类功能CheckedInputStreamGetCheckSum()为任何InputStream产生校验和(不仅是解压缩)CheckedOutputStreamGetCheckSum()为任何OutputStream产生校验和(不仅是压缩)DeflaterOutputStream压缩类基类GZIPOutputStream一个DeflaterOutputStream,用于将数据压缩成为zip文件GZIPInputStream一个InflaterInpu...原创 2020-06-02 15:59:01 · 204 阅读 · 0 评论 -
文件加锁
文件加锁通过对FileChannel调用lock()或tryLock(),可以获得整个文件的FileLock。tryLock()是非阻塞的,它试图获得锁,如果不能获得将直接从方法调用中返回。lock()是阻塞的,它会阻塞进程直到锁可以获得,或调用lock()的线程中断,或调用lock()的通道关闭。FileLock.release()可以释放锁。参数说明tryLock(long position, long size, boolean shared)lock(long position, l原创 2020-06-02 14:24:26 · 254 阅读 · 0 评论 -
内存映射文件
MappedByteBuffer内存映射文件允许我们修改和编辑那些因为太大不能放入内存的文件。java.nio.channels.FileChannel.map(MapMode mode, long position, long size) throws IOExceptionpackage com.zachary.io.nio.mapped;import java.io.FileNotFoundException;import java.io.IOException;import java.原创 2020-06-02 14:03:45 · 132 阅读 · 0 评论 -
缓冲器操纵数据
ByteBuffer是将数据移进移出的唯一方式,并且只能创建基本类型的缓冲器,或者通过”as“从ByteBuffer中获得缓冲器。缓冲器细节方法功能capacity()返回缓冲区容量clear()清空缓冲区,将position设置为0,limit设置为容量。可以调用次方法复写缓冲区flip()将limit设置为position,position设置为0。用于为读取缓冲区数据做准备limit()返回limit值limit(int lim)设置limit原创 2020-06-02 13:53:57 · 136 阅读 · 0 评论 -
获取基本数据类型,视图缓冲器
获取基本数据类型java.nio.ByteBufferasCharBuffer() : getChar()asShortBuffer() : getShort()asIntBuffer() : getInt()asLongBuffer() : getLong()asFloatBuffer() : getFloat()asDoubleBuffer() : getDouble()package com.zachary.io.nio;import java.nio.ByteBuffer;原创 2020-06-02 13:28:09 · 167 阅读 · 0 评论 -
数据转换
数据转换java.nio.charset.CharsetString encoding = System.getProperty(“file.encoding”); // 发现默认字符集,产生代表字符集名称的字符串System.out.println(Charset.forName(encoding).decode(buffer));对数组编码再写ByteBuffer.wrap(“Some text”.getBytes(“UTF-16BE”))char类型转换器buffer.asC原创 2020-06-02 13:07:00 · 388 阅读 · 0 评论 -
FileChannel
FileChannelByteBuffer唯一直接与通道交互的缓冲器。FileInputStream,FileOutputStream,RandomAccessFile能够产生FileChannel。Reader和Writer不能产生Channel。但是java.nio.channels.Channels类提供了实用方法,可以在通道中产生Reader和Writer。package com.zachary.io.nio;import java.io.File;import java.io.FileI原创 2020-06-02 13:06:43 · 179 阅读 · 0 评论 -
进程控制Process
java内部执行其它操作系统的程序,并要控制这些程序的输入和输出。package com.zachary.io.command;import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;import com.zachary.util.OSExecuteException;/** * @author Zachary.Zheng * @version 1.0 * @date 202原创 2020-05-30 16:58:41 · 203 阅读 · 0 评论 -
标准I/O
从标准输入中读取package com.zachary.io.standard;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;/** * @author Zachary.Zheng * @version 1.0 * @date 2020年5月30日 下午3:41:47 */public class Echo { public static void原创 2020-05-30 16:53:55 · 125 阅读 · 0 评论 -
文件读写实用工具
package com.zachary.io.file.util;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.Arrays;import java.util.TreeSet;/** *原创 2020-05-30 11:03:29 · 188 阅读 · 0 评论 -
I/O流的典型使用方法
缓冲输入文件BufferedReader当readLine()返回null时,代表已经达到了文件末尾。package com.zachary.io.input;import java.io.BufferedReader;import java.io.FileInputStream;import java.io.FileReader;import java.io.IOException;import java.io.InputStreamReader;/** * @author Zach原创 2020-05-30 10:59:27 · 183 阅读 · 0 评论 -
Reader+Writer+RandomAccessFile
Reader、WriterReader和Writer提供兼容Unicode与面向字符编码的I/O操作。让Reader和Writer继承层次结构主要是用来实现国际化。InputStream和OutputStream只能出理8为的字节流,不能很好的出理16位的Unicode字符。适配器: InputStreamReader用于InputStream类型转为Reader类型。OutputStreamWriter用于OutputStream类型转为Writer.数据的来源和去处Java1.0类相原创 2020-05-16 17:12:25 · 123 阅读 · 0 评论 -
InputStream + OutputStream
输入输出编程语言的I/O类库中常使用流这个抽象概念,它代表有产生数据能力的数据源对象和能接收数据能力的接收端对象。任何InputStream和Reader派生而来的类都有一个read()方法,能够用来读取单个字节或者字节数组。任何OutputStream和Writer派生而来的类都有write()方法,用了写单个字节或者字节数组。InputStream...原创 2020-05-10 21:03:50 · 146 阅读 · 0 评论 -
File类
boolean canRead()测试应用程序是否可以读取由此抽象路径名表示的文件。boolean canWrite()测试应用程序是否可以修改由此抽象路径名表示的文件。boolean delete()删除由此抽象路径名表示的文件或目录。boolean exists()测试此抽象路径名表示的文件或目录是否存在。File getAbsoluteFile()返回此抽象路径名的绝对形式...原创 2020-05-05 20:14:07 · 163 阅读 · 0 评论