IO 流
File
位于Java.io.包
表示文件或者文件夹
Java跨平台
不同的平台:分隔符不一样
区分不同的操作系统:
使用file的静态的常量:
public static final String separator
path 分隔符:
linnux:
:
windows:
;
对文件创建修改等不能阅读
java.io.File 类是专门对文件进行操作的类。(只能对文件本身进行操作,不能对文件内容操作)
File的常用方法
方法递归:
方法内部调用自己,实现重复的操作,循环操作
- 参数发生改变
- 也要有递归调用的终点
循环条件不确定时使用
IO分类
按照方向分:输入流和输出流
输入流:读操作
输出流:写操作
按照IO管道大小:字节流:一个字节一个字节的读写 (万能流)
字符流:一个字符一个字符的读写
输入流主要方法:
read( )读方法
close( ) 关闭
输出流主要方法
write()写方法
close()关闭
编写步骤:
- 创建IO流对象
- 读/写操作
- 关闭资源
直接对文件读写
字节节点流
FileInputStream 文件字节输入流
FileOutputStream:文件字节输出流
字符节点流:对文本文件进行读写(能不能用word文档打开)
FileRead:文件字符输入流
FileWrite:文件字符输出流
一点经验:有InputStream的是字节
位于IO包下面
1.创建IO流对象
FileInputStream fis = new FileInputStream
2.读操作
3.关闭
字节输入流的read()方法如果读到末尾返回-1
字节输出流里如果文件不存在会创建文件,但如果路径目录不存在无法创建 如果没有指定append参数 默认flase不追加,每次往文件写内容则会先清空之前
感觉比较有用的:
对象流
为什么序列化:方便对象保存,或者网络传输
为什么反序列化:配合序列化,取对象
不是所有的对象都可以序列化(必须要有通行证),必须实现
Serializable接口
Serializable接口中没有任何方法 只是一个标识接口
涉及到两个类:ObjectInputStream 和 ObjectOutputStream
对象序列化机制 允许把内存中的 Java 对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。// 当其它程序获取了这种二进制流,就可以恢复成原来的Java 对象
序列化 的好处在于可将任何实现了 Serializable 接口的对象转化为 字节数据 , 使其在保存和传输时可被还原
不能序列化 static 和 transient 修饰的成员变量
,就可以恢复成原来的Java 对象
序列化 的好处在于可将任何实现了 Serializable 接口的对象转化为 字节数据 , 使其在保存和传输时可被还原
不能序列化 static 和 transient 修饰的成员变量