流
(1)
概念:一组有序的数据序列(字节数组)
(2)
分类
a)
方向
①
输入:从外到内 XxxInputStream(字节输入)/XxxReader(字符输出)
②
输出:从内到外 XxxxOutStream/XxxxWrite
b)
内容
①
字节流:byte[] XxxInputStream和XxxxOutStream
②
字符流:char[] XxxReader和XxxxWrite
c)
功能
①
节点流:(基础流)直接面向数据源的流
②
处理流:(不能直接使用)扩展了节点流在某些特定领域的操作
d)
是否依赖网络
①
本地流:文件流
②
网络流:
(3)
文件流
a)
目录:
①
File
1) File dir = New File(String path);//创建目录对象
2) boolean exists = dir.exists();//目录是否存在
3) boolean isDir = dir.isDirectory();//是否目录、
File[] whats = dir.listFile([FileNameFiter/FileFilter
filter]);
关于相对路径和绝对路径
a、 普通java功能:相对路径为项目的根目录
b、 绝对路径:从分区根目录开始的路径(一般用相对路径,可用于测试)
4) boolean success = dir.mkdir(s)();
i.
mkdir:创建最后一级目录
ii.
mkdirs:创建所有不存在的目录
b)
文件:
①
File
1) File file = new File(String path);//创建文件对象
2) boolean exists = file.exists();//文件是否存在
3) boolean isFile = file.isFile();//是否是文件
4) String parentDir = file.getParent();//获取父类目录字符串
5) File parent = file.getParent();//获取父目录对象
6) String filename = file.getNmae();//获取文件名称
7) long realSize =file.length();//获取文件实际字节数
8) long freeSpace = file.getFreeSpace();//获取文件可存剩余字节数
9) long lastMod = file.lastModfiled();//获取文件上一次修改的长整时间
10) boolean success = file.createNewFile();//创建文件
c)
文件流:
①
字符文件流
1) 字符文件
i.
FileReader = new
FileReader(String/File path);
ii.
int len = fr.read(char[] sc); //len实际读取的字符数,-1表示文件结尾
iii.
fr.close(); 释放文件资源
2) 字符文件输出流
i.
FileWritre fw = new File Writer(String
/File.path,boolean appeand);
默认为覆盖写入模式,append表示追加模式
ii.
fw.write(char[] cs[,int
beginindex,int count]);
iii.
fw.writer(String str[,int
beginindex,int count]);
iv.
fr.close(); 释放文件资源
v.
3) 字符缓存读写流
i.
读
BufferedReader br = new
BufferedReader(FileReader fr();
String line = be.readLine();
//line:实际读取行的内容,null表示文件结尾
br.close();//同步关闭关联流资源,并释放文件资源
ii.
写:
BufferedWriter bw = new
BufferedWrier(FileWriter fw);
br.newLine(); //添加新行
……
br.close();
2、 字节文件流
(1)
输入
a)
FileinputStream fis = new
FileinputStream(String/File src);
如果src即文件不存在报错 java.io.FileNotFoundExeption
b)
int len = fis.read(byte[] bs);
c)
fs.close();
(2)
输出
a)
FileOutputStream fos = new FileOutputStream(String/File
dest);
如果dest目录不存在,则报错 java.io FileNotFoundExeption
b)
Fos.write(byte[] bs,int
beginindex,int count);
c)
Fos.close();
3、 Java对象的序列化和反序列化
Class Msg implements Serializable{…}
(1)
序列化
ObjectOutputStream oos = new ObjectOutputStream(文件输出流/网络输出流);
oos.writeObject();
oos.fiush();
oos.close();
(2)
反序列化
ObjectInputStream ois = new ObjectInputStream(文件输入流/网络输入流);
Msg msg = (Msg) ois.readObject();
……
Ois.close();