复习{
I/O流:
作用 就是用来传输数据的,从数据源 到数据汇的一个过程
In 输入
Out 输出
输入和输出代表流的方向, 体现在代码上 In 就时read读
Out就是write写的意思
I/O划分是按方向:
输入流:
输出流:
I/O划分是按类型:
字节流:
字符流:
字节流的输入流: InputStream 抽象类
字节流的输出流: OutputStream 抽象类
字符输入流: Reader 抽象类
字节输出流: Writer 抽象类
InputStream: 将数据读取到 java内存中
1.ByteArrayInputStream (铺垫)
2.FileInputStream 文件输入流
3.ObjectInputStream
4.AudioInputStream 音频传输流
5.PipedInputStream 管道流
6.StringBufferInputStream 过时了
OutputStream:
1.ByteArrayOutputStream (铺垫)
2.FileOutputStream 文件输出流
3.ObjectOutputStream
4.AudioOutputStream
5.PipedOutputStream
6.StringBufferOutputStream 过时了
InputStream:
1.available();
2.read();
3.read(byte[] b);
4.read(byte[] b,int off ,int len);
5.close();
6.skip(long a); 跳过
OutputStream:
1.flush(); 将缓存区中的内容 写出
2.close();
3.write(int a);
4.write(byte[] b);
5.write(byte[] b,int off,int len);
FileInputStream,FileOutputStream操作的是文件:
学习它之前 应该先学习File 类
File:
构造器: new File("路径");
方法:
createNewFile(); 创建一个 新的文件
exists(); 判断是否存在
isHidden(); 判断是否是隐藏文件
delete();删除
getName();
getPath();
getParent();
mkdir(); 创建单层文件夹
mkdirs(); 创建多层文件夹
listFiles(); 获取当前目录下的所有文件
length();
lastModified();
isFile(); 判断是否是文件
isDirectory(); 判断是否是文件夹
}
======================================================================
1.listFiles();
递归:
是循环的另一种形式,自己调用自己,会有终止条件
案例1:完成当前文件夹的遍历
案例2:完成文件夹的删除
2.FileInputStream 文件输入流:
FileInputStream(File file);
FileInputStream(String name);
方法就是InputStream中
3.FileOutputStream
FileOutputStream(File file);
FileOutputStream(File file, boolean append); append拼接
方法就是OutputStream中
完成图片下载:
URL:
URLConnection:
=========================================================================================
对象流:
ObjectOutputStream: 序列化
readObject();
ObjectInputStream: 反序列化
writeObject(Object obj);
什么是序列化:
将 内存中的对象 通过流的 方式 存储到 物理文件中的 过程就是序列化、
什么是反序列化:
将物理文件中的内容,通过流的方式 ,写入到内存中的过程 就是反序列化
序列化 和反序列化 没有 必要 同时执行;
自己执行自己的就可以了
但是实现 序列化的前提是 当前对象 必须 实现 Serializable
public class Person implements Serializable{
}
/**
* java中创建对象的方式有几种?
* 1.new Person();
* 2.反序列化
*/
总结:
1.学会File类的操作
遍历,删除
2.学会文件的复制
FileInputStream ,FileOutputStream
3.对象流 :
序列化, 和 反序列化
ObjectInputStream , ObjectOutputStream