Javase—IO流
来源:互联网 发布:视频快速剪辑软件 编辑:程序博客网 时间:2024/05/17 21:47
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
- Javase—IO流
- JavaSe——IO流_Part1
- JavaSe——IO流_Part2
- JavaSe——IO流_Part3
- JavaSE实战——IO流
- 黑马程序员—javaSE—IO流
- JAVASE----14----IO流
- JAVASE之IO流
- JavaSE IO流
- JAVASE之IO流
- javase-4-io流
- javaSE--IO流
- JAVASE----15----IO流_2
- JAVASE----16----IO流_3
- 【JavaSE基础】------IO流【一】
- JavaSe基础XX18——IO流_1
- JavaSe基础XX18——IO流_3
- JavaSe基础XX18——IO流_4
- 在线考试系统
- Instructions on EINT configuration for SIM hot swap for MT6575/MT6577 platforms
- [PAT]1031. Hello World for U (20)(Java实现)
- dns服务
- javadoc 错误:编码gbk不可映射字符
- Javase—IO流
- SpringMVC+Mybatis项目
- Word制作学生点名册表格模板
- mybatis缓存(一)
- UILabel的基本使用
- java从命令行参数args提取多个参数的工具类
- Android 动画详解
- Ubuntu 安装Node.js
- USACO 93, POJ 1273 排水沟(Drainage Ditches) 最大流