我的IO(输入/输出)

流是一组有序的数据序列,根据操作的类型,可分为输入流和输出流。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类创建文件对象

  1. File(String pathname)
    语法如下:
new File(String  pathname)//pathname指路径名称(包含文件名)如下
File file = new File("./arc/lqh.txt");
  1. File(String parent,String child)

parend 绝对路径 从盘符出发 例如D:/doc/。
child 相对路径 以某个文件为参考,找到的其他文件的路径。"."指的当前目录。

  1. 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秒

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值