流
流是一组有序的数据序列,根据操作的类型,可分为输入流和输出流。IO(Input/Output,输入/输出)
输入流
InputStream类是字节输入流抽象类,也是所有字节输入流的父类。
read()方法:
从输入流中读取数据的下一个字节。返回0~255范围内的int字节值,如果因为已经到达流末尾,则返回值为-1
read(dyte[]b):方法
从输入流中读入一定长度的字节,并以整数的形式返回字节数。
mark(int readlimit)方法:
在输入流的当前位置放置一个标记,readlimit参数告知此输入流在标记位置失效之前允许读取的字节数。
reset()方法:
将输入指针返回当前所做的标记处。
skip(long n):方法
跳过输入流上的n个字节并返回实际跳过的字节数。
markSupported():方法
如果当前流支持mark()/reset()操作就返回ture。
close方法:
关闭此输入流并释放该流关联的所有系统资源
输出流:
OutputStream类是字节输出流的抽象类,此抽象类是表示输出字节流的所有类的超类。
OutputStream类中的所有方法都返回void。
write(int b)方法:
将制定的字节写入此输出流。
write(byte [ ] b)方法:
将b个字节从指定的byte数组写入此输出流。
write(byte[] b,int,off,int len)方法:
将指定byte数组中从偏移量off开始的len个字节写入此输出流
flush()方法:
彻底完成输出并清空缓存区。
close()方法:
关闭输入流。
File类
文件的创建于删除:
可以用File类创建文件对象
- File(String pathname)
语法如下:
new File(String pathname)//pathname指路径名称(包含文件名)如下
File file = new File("./arc/lqh.txt");
- File(String parent,String child)
parend 绝对路径 从盘符出发 例如D:/doc/。
child 相对路径 以某个文件为参考,找到的其他文件的路径。"."指的当前目录。
- File(File f,String child)
f 绝对路径 从盘符出发 例如D:/doc/。
child 相对路径 以某个文件为参考,找到的其他文件的路径。"."指的当前目录。
file.delete();
将文件删除
exists 判断文件是否存在
if(**.exists()){
syso"文件存在";
}else
syso"文件不存在";
long longth = **.long();
获取文件长度
String name = **.getName();
获取文件名字
FileInputStream和FileOutputStream类
FileInputStream–该流用于从文件读取数据,它的对象可以用关键字 new 来创建。
构造方法如下:
InputStream f = new FileInputStream("C:/java/hello");
//也可以
File f = new File("C:/java/hello");
InputStream out = new FileInputStream(f);
FileOutputStream–该类用来创建一个文件并向文件中写数据
构造方法如下:
OutputStream f = new FileOutputStream("C:/java/hello")
//也可以
File f = new File("C:/java/hello");
OutputStream f = new FileOutputStream(f);
BufferedlnputStream与BufferedOutputStream类
BufferedlnputStream类:可以对所有的 InputStream类进行缓存区包装以达到性能的优化。
构造方法如下:
第一种构造方法创建32个字节缓存区
第二种构造方法按指定的大小来创建缓存区
BufferedlnputStream(InputStream in);
//也可以
BufferedlnputStream(InputStream in,int size);
BufferedOutputStream输出信息和用OutputStream输出信息完全一样,只不过BufferedOutputStream有一个 flush()方法用来将缓存区的数据强制输出完。
构造方法:
第一种构造方法创建一个有32个字节的缓存区。
第二种构造方法以指定的大小创建缓存区。
BufferedOutputStream(OutputStream in);
BufferedOutputStream(OutputStream in,int size);
ObjectInputStream : 对象输入流, 将文件中的内容反序列化为对象的过程。
ObjectInputStream() – 对象创建 将字节流包装为对象输入流
Object readObject()-- 读取内容, 反序列化
ObjectOutputStream : 对象输出流, 将对象序列化到文件中。
void writeObject(Object o) – 写入对象到文件中。
Person对象能被序列化到文件中, 要求Person需要实现序列化接口(Serializable)。
序列化接口没有任何方法,只是用于标明这个类是可以被序列化的(ObjectOutputStream / ObjectInputStream可以使用实现了序列化接口的类。)。
transient: 透明的。修饰变量。序列化的时候,这个成员变量salary不会被写入到文件中
synchronized : 加锁
synchronized (){} 给代码块加锁
Thread.sleep(5000); 等待5秒