Javase—IO流


1.IO流:
1.定义:泛指对所有输入输出操作的框架;input和output
2.分类:
1.方向(相对于程序或内存):
输入流:带read的流
输出流:带write的流
2.功能:
节点流:直接连接到资源,以File开头,可以直接从目录获取(目录 用“/”或“\\”)
处理流:也称为高级流,对现有的流进行处理,经过处理流包装的流就形成一个流链,不能直接与文件相连,是一种装饰模式
3.内容:
字符流:对字符进行操作(Reader,Writer)
字节流:机器语言0.1,8个为一个字节(InputStream,OutputStream),不能用字符时再用字节


2.流:指管道,对“读”和“写”两种操作的抽象表示,最后要进行关闭:r.close();


3.四种顶级流的抽象表示:
1.Reader :输入字符流
2.Writer :输出字符流
3.InputStream :输入字节流
4.OutputStream :输出字节流




4.File类:
1.说明:可以表示计算机上的一个文件(目录),对其整体进行操作,获取文件的所有属性信息
2.File类和IO流的相关类和接口都在java.io中
3.常用方法:
length() :获得长度
exists() :判断是否存在
creatNewFiles() :创建新文件
creatTemFiles() :创建临时文件
isFile() :类型是否为文件
isDirectory() :类型是否为目录
isHidden() :判断是否隐藏
getParent() :获得上一级路径
getPath() :获得完整路径
getName() :获得文件名
getlastModified():最后一次修改时间(毫秒)
listFiles() :获得所有的子文件
mkdir() :创建空目录
mkdirs() :创建多层次目录
delete() :删除普通文件或空目录
4.种类:
普通文件
空的目录
非空目录 


5.递归方法:
1.说明:在方法体调直接或间接调用自身的方法
2.作用:将一个大规模的问题,简化成小规模的相同问题
3.要求:必须有结束条件,否则会产生栈溢出异常
4.性能:解决问题可以用循环或递归解,用循环解决性能更好
5.案例:遍历树(删除非空目录);二分法;斐波那契数列


6.字符流:
1.Reader:输入字符流的抽象类

1.FileReader(节点流):文件的字符输入流:

FileReader fr=new FileReader(文件或目录);

while((int c=fr.read())!=-1){

System.out.println((char)c);

}

fr.close();

2.BufferedReader(处理流):带缓冲的字符输入流(增加了readLine()方法):

BufferedReader br=new BufferedReader(File file);

While((String s=br.readLine())!=null){

str=str+s;

}

br.close();

2.Writer:输出字符流的抽象类
1.FileWriter :文件的字符输出流
2.BufferedWriter :带缓冲的字符输出流(增加了newLine()方法)
3.PrinteWriter :打印流


7.字节流:
1.说明:可以处理任何类型的数据
2.两个抽象类:
1.InputStream(读字节):读流的步骤:
1.创建流
2.读字节(字符)
3.关闭
2.OutputStream(写字节):用到了try,catch,关闭流写在finally里
3.实现类:
1.对象流:
1.说明:可以将java中的基本数据类型或自定义类写到流中(ObjectOutputStream),或从流中读取(ObjectInputStream),读和写的顺序必须相同,只能写出通过对象流输入的信息
2.ObjectOutputStream常用的方法:writeInt,writeXxx,writeUTF(字符串),writeObject(通过这个方法写入的对象一定要实现java.io.Serializable接口[标识接口])


8.Serialization(序列化):
1.定义:将对象的状态信息转换为可以存储或传输的形式的过程。
2.说明:在序列化期间,对象将其当前状态写入到临时或持久性存储区;以后,可以从存储区中读取反序列化对象的状态,重新创建该对象。
3.技巧:可以将不确定个数的n个对象存到集合(List,Set,Map)中,再进行序列化
4.典例:深复制(深复制指的是创建一个与当前对象相同的新对象,对象中引用的所有对象也创建新的的副本)


9.Properties(属性文件):
1.说明:Hashtable的子类
2.作用:可以将Hashtable中的数据存储到文件中

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值