Object IO

AIP

#Object
所有对象的顶级父类

#常用方法
boolean equals(Object obj)
指示其他某个对像是否与此对象“相等” 默认比较内存地址值
protected void finalize()
当垃圾回收其确定不存在该对象的更多引用时,由对象的垃圾回收器调用次方法
int hashCode()
返回该对象的哈希码值
String toString()
返回该对象的字符串表示 默认返回 类名@地址的格式

#String
字符串对象 是一个封装char[]数组的对象 字符串不可变
#创建方式
1.new String(char[]) 底层维护了一个char[]
char[] = {‘a’,‘b’,‘c’}
String s = new String©;
2.直接创建 常量池里直接创建对象,本质还是char[] 再次使用相同内容,会去常量吃中找到已经存在的对象,不会新建
String s = “abc”
#字符串链接效率
利用String类,在做字符串链接的过程效率及其地下
String s1=“aaa";
String s2=“bbb”;
String s3=s1+s2
字符串不可变,每次都会创建新对象,这行代码要产生右侧3个对象,慢。
#常用方法
length() 字符串的长度
charAt(int) 返回指定索引的char值
lastIndexOf(String) 找出字符串出现的最后出现的位置
substring(int,int) 截取字符串 含头不含尾
equals(String) 判断两个字符串的内容是否相同
starsWith(String) 是否以指定字符串开头
endsWith(String) 是否以指定后缀结束
split(”?“) 根据指定的规则切割字符串
trim() 去除字符串两端的空格

#StringBuilder/StringBuffer
封装了char[]数组,可变字符序列,提供了一组可以对字符内容修改的方法,常用append()来代替字符串做字符串链接,初始容量为16,如果大于16会尝试扩容,新数组大小为原来2被+2,容量如果来时不够,直接扩充到需要的容量大小,StringBuffer线程安全 ,StringBuilder线程不安全。
append(String) 在后面空白处添加字符串

#包装类
Byte,Short,Integer,Long,Float,Double,Character,Boolean
#Integer
在Integer类中,包含256个缓存对象,范围是-128到127,
使用valueOf()时,如果指定范围内的值,访问缓存对象,而不新建,如果指定范围外的值,直接新建对象
创建对象
new Integer(5);
Integer.valueOf(5);
方法
parseInt(); 字符串转换成int
toBinaryString(); 把整数转换成2进制数据
toOctalString(); 把整数转换成8进制数据
toHexString(); 把整数转换成16进制数据

#Data 日期类
创建对象
new Data() 封装的是系统当前时间的毫秒值
new Data(90000L) 封装制定的时间点
常用方法
getTime(); 取内部毫秒值
setTime(); 存内部毫秒值
getMonth(); 获取当前月份
getHours(); 获取当前小时
comparenTo(Data); 当前对象与参数对象比较,当前对象大返回正数,小返回负数,相同0.

#SimpleDataFormat 日期工具
可以吧Data对象格式化成字符串,也可以把日期字符串解析成Data对象
创建对象
new SimpleDataFormat(格式)
yyyy-MM-dd HH:mm:ss
常见方法
format(Data) 把Data格式化成字符串
parse(String) 把String解析成Data

#BigDecimal/BigInteger
BigDecimal:常用来解决精确的浮点数运算
BigInteger:常用来解决超大的整数运算
创建对象:BigDecimal.valueOf(2);

常用方法
add(BigDecimal) 做加法运算
substract(BigDecimal) 做减法运算
multiply(BigDecimal) 做乘法运算
divide(BigDecimal) 做除法运算
divide(BigDecimal,保留位数,舍入方式) 除不尽时使用
setScale(保留位数,舍入方式)
pow(int) 求数据的几次幂

#IO
in/out 输入(读取)/输出(写出)的过程
java.io包:

File
字节流:针对二进制文件
InputStream
–FileInputStream
–BufferedInputStream
–ObjectInputStream
OutputStream
–FileOutputStream
–BufferedOutputStream
–ObjectOutputStream
字符流:针对文本文件。读写容易发生乱码现象,在读写时最好指定编码集为utf-8
Writer
–BufferedWriter
–OutputStreamWriter
Reader
–BufferedReader
–InputStreamReader
–PrintWriter/PrintStream

#流的概念
数据的读写抽象成数据,在管道中流动。流只能但方向流动,输入流用来读取in,输出流用来写出out,数据只能从头到尾顺序的读写一次
#File文件流
封装一个磁盘路径字符串,对这个路径可以执行一次操作,可以用来封装文件路径,文件夹路径,不存在的路径
创建对象
File(String ) 通过将给定路径名字字符串转换为抽象路径名来创建一个新File实例
常用方法
.length() 文件的字节量
.exists() 是否存在,存在返回true
.isFile() 是否存在文件,存在返回true
.isDirectory() 是否为文件夹,是文件夹返回true
.getName() 获取文件/文件夹名
.getParent() 获取付文件夹的路径
.getAbsolutePath() 获取文件的完整路径

.createNewFile() 新建文件,文件夹不存在会有一场,文件已经存在返回false
.mkdirs() 新建多层不存在的文件夹
.mkdir() 新建单层不存在的文件夹
.delete() 删除文件,删除空文件夹

.list() 返回String[] ,包含文件名
.listFiles() 返回File[],包含文件对象

#字节流读取
字节流是由字节组成的,字符流是由字符组成的Java里字符由两个字节组成.字节流是最基本的,所有的InputStream和OutputStream的子类都是,主要用在处理二进制数据。

#InputStream抽象类
此抽象类是表示字节输入流的所有类的超类/抽象类
常用方法
abstract int read() 从输入流中读取数据的下一个字节
int read(byte[] b) 从输入流中去读一定数量的字节,并将其存储在缓冲区数组b中
int read(byte[] b,int off,int len) 将输入流中最多len个数据字节读入byte数组中
void close() 关闭此输入流并释放与该流关联的所有系统资源

#FileInputStream子类
创建对象
FileInputStream(File file) 通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的File对象file指定
FileInputStream(String pathname) 通过打开一个到实际文件的连接来创建一个FileInputStream,该文件通过文件系统中的路径名name指定

#BufferedInputStream子类
BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。在创建 BufferedInputStream 时,会创建一个内部缓冲区数组(默认8M大小)。在读取或跳过流中的字节时,可根据需要从包含的输入流再次填充该内部缓冲区,一次填充多个字节。
创建对象
BufferedInputStream(InputStream in) 创建一个BufferedInputStream并保存其参数,即输入流in,以便将来使用

#字节流读取
常用于处理纯文本数据

#Reader抽象类
用来读取字节流的抽象类
常用方法
int read() 读取单个字符
int read(char[] ) 将字符读入数组
abstract int read(char[],int,int) 将字符输入数组的某一部分
int read(CharBuffer) 试图将字符读入指定的字符缓冲区
abstract void close() 关闭该流并释放与之关联的所有资源

#InputStreamReader子类 是字节流通向字符流的桥梁
创建对象
InputStreamReader(InputStream in,String charsetName) 创建使用指定字符集的 InputStreamReader
InputStreamReader(InputStream in) 创建一个使用默认字符集的InputStreamReader

#FileReader子类 用来读取字符文件的便捷类
创建对象
FileReader(String fileName) 在给定从中读取数据的文件名的情况下创建一个新FileReader
FileReader(File file) 在给定从中读取数据的File的情况下创建一个新FileReader

#BufferedReader子类 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
创建对象
BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的缓冲字符输入流

#字节流写出
OutputStream 抽象类
常用方法
void close() 关闭次输出流并释放与此刘有关的所有资源
void flush() 刷新次输出流并强制写出所有缓冲的输出字节
void write(byte[] b,int off,int len) 将制定byte数组中从偏移量off开始的len个字节写入次输出流
abstract void write(int b) 将指定的字节写入此输入流

#FileOutputStream 子类
创建对象
FileOutputStream(String name) 创建一个向具有指定名称的文件中写入数据的输出文件流
FileOutputStream(File file) 创建一个向指定File对象表示的文件中写入数据的文件输出流
FileOutputStream(File file,boolean append) -追加 创建一个向指定File对象表示的文件中写入数据的文件输出流

#BufferedOutputSteam子类 实现缓冲的输出流
创建对象
BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流

#字符流写出
写入字符流的抽象类
常用方法
void write(char[]) 写入字符数组
abstract void write(char[] cbuf,int off,int len) 写入字符数组的某一部分
void write(int c) 写入单个字符
void write(String str) 写入字符串
void write(String str,int off,int len) 写入字符串的某一部分
abstract void close() 关闭次流,当要先刷新它

#OutputStreamWriter子类 是字符流通向字节流的桥梁
创建对象
FileWriter(String fileName) 根据给定的文件名构造一个 FileWriter对象
FileWriter(String fileName,boolean append) 根据给定的文件名已经制定是否附加写入数据boolean值来构造FileWriter对象

#FileWriter子类
创建对象
FileWriter(String fileName) 根据给定的文件名构造一个FileWriter对象
FileWriter(String fileName,bollean append) 根据给定的文件名以及指示是否附加写入数据的boolwan之来构造FileWriter对象

#BuffrerdWriter子类 缓冲各个字符
创建对象
BufferedWriter(writer out) 创建一个使用默认大小输出缓冲区的缓冲字符输出流

#序列化/反序列化
序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。
在序列化期间,对象将其当前状态写入到临时或持久性存储区。以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象。
序列化:利用ObjectOutputStream,对象的信息,按固定格式转成一串字节值输出并持久保存到磁盘化。
反序列化:利用ObjectInputStream,读取磁盘中序列化数据,重新恢复对象

#ObjectOutputStream
对象创建
ObjectOutputStream(OutputStream out) 创建写入指定OutputStream的ObjectOutputStream

#ObjevtInputStream
ObjectInputStream(InputStream in) 创建从制定InputStream读取的ObjectInputStream

OutputStreamWriter:是字节流通向字符流的桥梁
–OutputStreamWriter(OutputStream out, String charsetName)
–OutputStreamWriter(OutputStream out)
InputStreamReader:是字节流通向字符流的桥梁
–InputStreamReader(InputStream in)
–InputStreamReader(InputStream in, String charsetName)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值