IO流

IO流

IO流的作用:
由于File类是用来操作文件及目录的,无法操作文件里的数据,所以用IO流来操作文件中的数据

IO流的分类:
IO流分为字节流和字符流
字节流(InputStream&OutputStream):操作的是字节,对于数据以字节的形式进行操作,字节流可以操作任意数据
字符流(Writer&Reader):操作的是字符,对于数据以字符的形式进行操作,字符流只能操作文本数据

输入流和输出流:
输入流:是用来读取文件内容的
输出流:是用来写出内容的

1.文件操作流:
FileInputStream:字节输入流
FileInputStream fls = new FileInputStream(“E:\”);
int len=0;
byte[ ] bytes = new byte[1024];
while((len = fls.read(bytes))!=-1){
System.out.println(new String(bytes,0,len));
}
fls.close();
FileOutputStream:字节输出流
FileOutputStream fos = new FileOutputStream(“E:\”);
fos.write();
fos.close();

2.缓冲流(属于字节流):
缓冲流的作用:为了提高流读写的效率
字节缓冲流:
BufferedOutputStream:字节缓冲输出流:
构造方法:BufferedOutputStream(OutputStream out):创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
BufferedOutputStream(OutputStream out,int size):创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。
按照系统写出换行符:newLine();

BufferedInputSteam:字节缓存输入流:
构造方法:BufferedInputStream(InputStream in) 创建一个BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
BufferedInputStream(InputStream in, int size) 创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
成员方法:readLine();一次读取一行

BufferedInputStream bis = new BufferedInputStream(new FileIntputStream(“E:\xxx.txt”));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(“C:\xxx.txt”));
int len = 0;
byte[ ] bytes = new byte[1024];
while((len = bis.read(bytes))!=-1){
}
bis.close();
bos.close();

字符缓冲流:
BufferedWriter:字符缓冲输出流
构造方法:BufferedWriter(Writer out) 创建一个使用默认大小输出缓冲区的缓冲字符输出流。
BufferedWriter(Writer out, int sz) 创建一个使用给定大小输出缓冲区的新缓冲字符输出流。
成员方法:newline();不区分操作系统的换行功能

BufferedReader:字符缓冲输入流
构造方法:BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的缓冲字符输入流。
BufferedReader(Reader in, int sz) 创建一个使用指定大小输入缓冲区的缓冲字符输入流。
成员方法:String readLine();一次读取文本文件中的一行数据(\r\n),这个readLine并不读取换行符。

BufferedReader br = new BufferedReader(new FileReader(“E:\xxx.txt”));
BufferedWriter bw = new BufferedWriter(new FileWriter(C:\xxx.txt));
String len;
While((len = br.readLine())!=null){
bw.writer();
bw.newLine();
}
br.close();
bw.close();

3.转换流(属于字符流):
InputStreamReader:是字节转换字符的桥梁
构造方法:InputStreamReader(InputStream in)创建一个使用默认字符集的InputStreamReader。
InputStreamReader(InputStream in,String charsetName)创建使用指定字符InputStreamReader

OutputStreamWriter:是字符转换字节的桥梁
构造方法:OutputStreamReader(OutputStream out) 创建使用默认字符编码的OutputStreamReader。
OutputStreamReader(OutputStream out,String charsetName) 创建使用指定字符的OutputStreamReader。

InputStreamReader isr = new InputStreamReader(new FileInputStream(“E:\xxx.txt”));
OutStreamWriter osw = new OutStreamWriter(new FileOutputStream(“C:\xxx.txt”));
int len = 0;
while((len = isr.read())!=-1){
osw.writer(len);
}
isr.close();
osw.close();

4.序列化流
作用:用来操作对象的,将对象存储到文件中,也可以读取
序列化:将对象存储到文件(以字节的形式)
反序列化:将储存在文件的对象获取出来
注意:如果一个对象想要实现序列化,就必须带上Serializable关键字,实现Serializable接口

ObjectOutputStream:对象的序列化流
作用:把对象以流的形式写入到文件中保存
构造方法:ObjectOutputStream(OutputStream out) 创建写入指定OutputStream的ObjectOutputStream
特有的成员方法:void writeObject(Object obj) 将指定的对象写入到ObjectOutputStream

ObjectInptuStream:对象的反序列化流
作用:把文件中保存的对象以流的形式读取出来
构造方法:ObjectInputStream(InputStream in) 创建从指定的InputStream读取ObjectInputStream
特有的成员方法:Object readObject() 从 ObjectInputStream 读取对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值