java015

1. Buffered->功能流(节点流)

作用:提高字节流的读写效率,增强性能

字节流缓冲流

​ 字节输入缓冲流 BufferedInputStream

​ 字节输出缓冲流 BufferedOutputStream

注意:无新增方法需要使用,可以发生多态

字符流缓冲流

​ 字符输入缓冲流 BufferedReader

​ 新增功能:String reaLine()读一行文字

字符输出缓冲流 BufferedWriter

​ 新增功能:void newLine()写一个行分隔符

注意:如果需要使用新增功能,不要使用多态调用

2.字节流的功能流

基本数据类型流Data

作用:能够读写带有数据类型的数据(要求:基本数据类型+字符串)

DataInputStream 基本数据类型输入流
新增方法: readXxx();
DataOutputStream 基本数据类型输入流
新增方法: writeXxx();

注意: 不能发生多态
读入的数据与写出的顺序保持一致
EOFException : 当读入的不是写出时的源文件遇到异常| 源文件存在改动遇到的异常

Object 流 | 对象流 | 引用数据类型流
作用: 可能读写数据保留数据的数据类型(引用数据类型|基本数据类型)

序列化 : 将对象类型的数据转为一个可以存储|可以传输的过程
反序列化 : 反转状态(转为java中的对象格式)

ObjectInputStream 反序列化输入流
新增方法: Object readObject() 从ObjectInputStream中读取一个对象。
ObjectOutputStream 序列化输出流
新增方法: void writeObject(Object obj) 将指定的对象写入ObjectOutputStream。

注意
1.先序列化后反序列化
2.读入与写出的顺序要保持一致
3.不是所有类型的数据都能够序列化 实现一个空接口 java.io.Serializable
4.不是所有的属性都需要序列化 transient修饰
5.静态的变量不会序列化
6.父类有实现序列化接口,子类可以序列所有成员
7.子类实现了序列化接口父类没有实现,子类只能序列化自己独有的内容

控制版本的统一性:
序列化的类型默认存在一个serialVersionUID = 1972236683886522887,根据成员的修改会更新
控制每次修改内容前后序列号统一,解决版本不兼容问题
为序列化的类提供序列号: idea工具生成 1)实现Serializable接口 2)设置Setting中配置

3,Commons IO

CommonsIO 是apache的一个开源的工具包,封装了IO操作的相关类,使用Commons IO可以很方便的读写件,url源代码等。

使用步骤:
1.下载资源文件 jar包
2.项目下进行整合 加入到资源目录中
项目下新家一个文件夹 lib ,jar包放入lib中
选中jar包,右键 add as lib…

常见的调用方法

去除目录和后缀后的文件名

FilenameUtils.getBaseName(String filename)

复制文件夹

FileUtils.copyDirectory(File srcDir, File destDir)

文件移动

FileUtils.moveFile(File srcFile, File destFile)

删除文件夹

FileUtils.deleteDirectory(File directory)

4,集合|容器

作用:存储多个数据

常见的简答题:

容器与数据之间的区别?

容器类和数组,整体没啥区别,归根结底都是为了编程计算算法等需要出现的数据结构
所以说容器类和数组本质一样  存储数据的方式不一样,数组的存储方式是固定的,就是在初始化的时候数组有多少个元素就是固定的,而且类型必须是一致,比如里面是int类型,里面存放的元素全是int类型,不能有其他的类型。
而数组又是最常用的数据结构  所以几乎所有高级语言都可以直接定义数组
而java的容器类 ArrayList  底层结构也是数组 但是他大小可变,可以存放不同类型的值,里面也有泛型,不止ArrayList,还有Set ,Map等等,方式都差不多。都是可变的。

数组的特点:

1.数组是一个引用数据类型

2,定长,长度一旦确定不可改变

3,存储任意类型的数据,存储数据的类型要求一致

4,有序,有索引|下标(从零开始)

容器:

可以随着数据的增删容量进行改变

存储任意引用类型的数据

遍历:

1.for…each|增强for循环

//对于集合col,通过增强for循环
for(Object obj:col){
   System.out.println();
}

2.迭代器

//同样对于集合col,通过迭代器进行遍历
Iterator ab=col.iterator();
while(ab.hasNext()){
   System.out.println(ab.next());
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值