java中流的详细介绍
程序员文章站
2022-04-06 16:57:59
...
1、流
(1)概念:一组有序的数据系列(字节数组)
(2)分类
1)方向
1 输入 :从外->内 XxxInputSream字节 /xxxReader字符
2 输出: 从内->外 XxxoutputSream / Xxxwriter
2)内容
1 字节流: byte[] XxxinputStream/ XxxoutputSream
2 字符流: char[] xxxReader/ Xxxwriter
3)功能
1 节点流:直接面向数据源的流(基础流)
2 处理流:扩展了节点流在某些特定领域的操作
4)是否依赖网络
1)本地流:文件流
2)网络流
(3)文件流
1)目录
1 File
a File dir = new File(String path); 创建目录对象
b boolean exists = dir.exists(); 目录是否存在
C boolean isDir = dir.isDirectory(); 是否是目录
d File[]whats = dir.listFile([FileNameFilter/FileFileFiter fiter])
e boolean success = dir.mkdirs();
a) Mkdir : 创建最后一个目录
b) Mkdirs: 创建所有不存在的目录
e 关于相对路径和绝对路径
a)普通java功能:相对路径为项目的根路径
b)绝对路径:从分区根目录开始的路径
2)文件
1 File
a File file= new File(String path); 创建文件对象
b boolean exists = file.exists(); 文件是否存在
c boolean isFile = file.isFile(); 是否是文件
d String partenDir - file.getParent() 获取父目录字符串
e File parent =file.getParent() 获取父目录对象
f. String fileNAme= fil.getName() 获取文件名称
g long realzSizr = file.length() 获取文件实际字节数
h long freeSpace= file.getFreeSpace(); 获取文件可存剩余字节数
I long lasrMod = file.lastModifies() 获取文件上一次修改的长整时间
J boolean success = file.createNewFile();创建文件
3)文件流
1 字符文件流
A 字符文件输入流
a) FileReader fr = new FileReader(String/file path);
b) int len = fr.read[char[]cs]; 实际读取的字符数,-1表示文件结尾
c) Fw.close(); 释放文件资源
B 字符文件输出流
a)FileWriter fw = new FileWriter(String/File path, boolean append);
默认为覆盖写入模式,append:true表示追加模式
b)Fw.write(char[]cs [int beginIndex,int count];
Fw.write(String[]str [int beginIndex,int count];
c)Fw.close(); 释放文件资源
C 字符缓存读写流
A 读
a)BufferedReader br = new BufferedReader(FileReader fr);
b)String line = br.readline(); 实际读取行的内容,null表示文件结尾
c)br.close(); 同步关闭关联流资源 ,并释放文件资源
B 写
a)BufferedWriter bw = new BufferedWriter(FileWriter fw );
b)Br.newLine(); 添加新行
c)。。。
d)br.close();
2 字节文件流
a 输入
a FileInputSteam fis = new FileInputStream(String/File src);
如果src不存在则报:java.io.FileNotFoundExeption
b int len =fis.read(byte[] bs);
c fis.close();
b 输出
a) FileOutputStream fos = new FileOutputStream(String/File dest);
BufferedOutputStrea bis =new BufferedOutputStream(fis,int size);
如果dest的目录不存在则报:java.io.FileNotFoundExeption
b)Fos.write(byte[]bs,int beginindex ,int count);
c)Fos.close();
3 java对象的序列化和反序列化
a 序列化
ObjectOutputStream oos = new Objectoutputstream{
文件输出流/网络输出流;
oos.writeObject(new Msg(…));
Oos.flush();
Oos.close();
}
b 反序列化
ObjectInputStream ois = new ObjectInputStream{
文件输入流、网络输入流;
Msg msg = (Msg) ois.readObject();
…
Ois.close();
}