欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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();
}