java
2019-04-28 14:32:19 0 举报
AI智能生成
统计里java里面一些常用的知识点。
作者其他创作
大纲/内容
文件
压缩
ZIP
GZIP
数据传输
对象序列化
说明:
将实现了Serializable接口的对象转换成一个字节序列,并能在以后将这个字节序列恢复为原来的对象
可实现轻量级的持久性,即对象的生存周期与程序的运行无关
作用:
java远程方法的调用、网络传输
java Beans的需要
使用方法:
(1)实现Serializable接口
默认序列所有字段,序列化操作会自动进行
(2)序列化:创建某些OutputStream对象,让后将其封装在ObjectOutputStream对象内,让后调用writeObject()即可
(3)反序列化:将InputStream()封装在ObjectInputStream()内,然后调用readObject()
注意需要强转
序列个别字段
方法(1)
字段前加transient关键字来忽略此字段
方法(2)
在实现了Serializable接口的类中添加WriteObject、readObject方法(即跳过正常的序列化过程并调用他的writeObject())
在方法中手动选择需要序列化的字段(可以序列化transient字段)
注:可以在两方法中调用defaultWriteObject、defaultReadObject来使用默认机制写入对象的非transient字段
(2)实现Externalizable接口
在writeExternal、readExternal方法中手动选择需要序列化的字段
注:恢复对象时,所有普通的默认构造器都会被调用,然后才会调用readExternal()
注:
static不能被自动序列化
只有java才可以反序列化对象
xml
跨平台、语言
Preferences
是一个键值集合,存储在一个节点层次结构中
只能存储基本类型和字符串,适用于小的,受限的数据集合
IO结构
字节操作
缓冲流:BufferedInputStream、BufferedOutputStream
字符流操作:Reader、Writer
尽量使用字符流操作
字节流转字符:inputStreamReader、outputStreamWriter
缓冲流:BufferedReader、BufferedWriter
刷新缓冲流:flush
NIO
通道
FileChannel
FileInputStream(读)
FileOutputStream(写)
RandomAccessFile(读/写)
ByteBuffer
获取基本数据类型
asCharBuffer、asShortBuffer等as方法
视图缓冲器(view buffer)
作用
向ByteBuffer中读取/写入基本类型数据
说明:
可通过基本类型的视窗来查看其底层的ByteBuffer
对视图缓冲器的修改都会映射为对ByteBuffer的修改
用视图缓冲器操纵数据
read():从FileChannel中读取数据到BytuBuffer中
flip():准备缓冲器以便他的信息可以由Write读取,get是需要flip(),将position置为0,limit设为原来position值
clear():清空缓冲器,内容不会清空,将limit还原为capacity大小,position还原为0
mark()标记position
resite()还原到mark标记的position
说明:
唯一与通道交交互的缓冲器,即数据移进移出通道的唯一方式
使用:
(1)放入字节到ByteBuffer
put()/warp()
内存映射文件
获取文件上的通道,调用map()产生MappedByteBuffer
注意:
必须指定映射文件的初始位置和映射区域的长度
eg:MappedByteBuffer out = new RandomAccessFile("test.dat" , "rw" ).getChannel().map(FileChannel.MapMode.READ_WRITE, 0, length);
文件加锁
允许我们同步访问某个文件作为共享资源的文件
使用:
对FileChannel调用tryLock()或lock()
lock() 阻塞式,他会阻塞线程直至锁可以获得/线程中断/调用lock()的通道关闭
tryLock()非阻塞,它设法获取锁,若不能获得,直接从方法返回
释放锁:FileLock.release()
对映射文件的部分加锁
扫描和格式化
扫描(scanner)
将其输入分解为标记,以空格符作为分割标记(空格,制表符,行终止符)
s.useDelimiter(正则表达式):指定正则表达式为分隔符
s.useLocale(地区):设置语言环境
格式化
print、println
format
命令行IO
标准流
输入
System.in
标准输出/错误
System.out
System.err
控制台(console)
有大部分标准流提供的功能,对安全的密码输入很有用,提供了真正的输入输出字符流
使用前调用system.console()检索console对象,若返回NULL,则不允许console操作
Path
path类表示文件系统的路径,path对象包含文件名和目录列表,用于构建路径,检查,定位和操作文件
创建Path对象:Path p1 = Paths.get("/home/foot/text");
相关方法
p1.getFileName() text
p1.getName(0) home
p1.getNameCount() 3
p1.subpath(0,2). home/foot
p1.getParent() home/foot
p1.getRoot() /或C:\
path操作
转换一个路径
toUri
toAbsolutePath
toRealPath
连接两个路径
eg:p1.resolve("bar"); /home/text/bar
比较两个路径
equals
startsWith、endsWith:检测路径中是否含有特定字符串开头或结尾
FileInputStream
InputStream
ByteArrayInputStream
FilterInputStream
PipedInputStream
BufferedInputStream
DataInputStream
StringBufferInputStream
PushbackInputStream
接口
意义:被覆盖、实现
0 条评论
下一页