Java输入流与输出流

1、字节流:音频文件、图片、歌曲  2、字符流:文本
注意:在程序中一个字符等于两个字节
字节流与字符流的区别:
字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的
字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容
字节流:
InputStrean  字节输入流 从文件到程序
OutputStream  字节输出流 从程序到文件
方法
描述
Public void close()
关闭输入流
Public abstract int read()
以数字的方式读取内容
Public int read(byte [] b)
将内容读取到byte数组中,同时返回读入的个数
 
 
OutputStream的主要方法
方法
描述
Public void close()
关闭输出流
Public abstract int write(int b)
在数据流中写入一个字节
Public void  write(byte[] b)
在数据流中写入一个byte数组
Public void  write(byte[] b,int off,int len)
在数据流中写入一个指定范围byte数组
Public void flush()
刷新缓冲区
FileInputStream是InputStrean的子类,主要用于从文件读取数据;
FileOuputStream是OutputStream的子类,主要用于向文件中写入数据。


BufferedInputStrean和BufferedOutputStream为InputStrean和OutputStream增加了内存缓冲区,根本目的是允许java的IO流一次操作多个字节,从而提高系统的性能。
BufferedInputStream(InputStrean in) //按照32个字节缓冲区的缓冲流
BufferedInputStream(InputStrean in,int size)//指定大小的缓冲流
BufferedOutputStream(OutputStream in) //按照32个字节缓冲区的缓冲流
BufferedOutputStream(OutputStream in,int size)//指定大小的缓冲流
BufferedOutputStream 中的flush方法可以强制输出缓冲区的数据


对象序列化和反序列化;
把Java对象转换成字节序列的过程成为对象序列化
把字节序列恢复到java对象的过程叫做对象的发序列化


序列化类的对象要求实现java.io.Serializable;
 
Public ObjectInputSrteam(inputStream in)
构造方法
构造输入对象
Final object readObject()
方法
从指定位置读取对象
 
Public ObjectOutStream
(inputStream in)
构造方法
构造输出对象
Final void writeObject()
方法
输出对象的指定位置


//对象序列化:对象转换成字节
File f=new File(“d:”+Fiel.separator+”stuInfo.txt”);
OutputStream outStream=new FileOutputStream(f);
ObjectOutputStream os=new ObjectOutputStream(outStream);
Os.writeObject(new Student(“tom”,20));
outStream.close();
os.close();
 
//对象反序列化:自己转换成对象
File f=new File(“d:”+Fiel.separator+”stuInfo.txt”);
InputStream inStream=new FileInputStream(f);
ObjectInputStream os=new ObjectInputStream(in);
Object object=in。readObject();
Student stu=(Student)object;
System.out.print(“姓名”+stu.getName());
System.out.print(“姓名”+stu.getAgee());
inStream.close();
in.close();      


字符流Reader和Writer 抽象类
Reader
方法
描述
Public abstract void close()
关闭输入流
Public int read()
读取单个字符
Public int read(char[] c)
将内容读取到字符流数组中,并返回读取的长度
 
writer
方法
描述
Public abstract void close()
关闭输出流
Public int writer(String str)
输出字符串到流中
Public int writer(char[] c)
输出字符数组到流中
Public abstarct void flush()
强制清空缓存
                                                                         
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值