java基础day18

Day18
一、InputStream字节输入流、OutputStream字节输出流(抽象类)

1、把硬盘的数据读取到内存中,称为输入流;把内存的数据写入硬盘中,称为输出流
2、使用流的时候:

  • 所有导入java.io下的jar包;
  • 需要注意异常;
  • 关闭流,释放资源;

3、OutputStream的常规方法:

  • public void close():关闭与释放资源;
  • public void flush():强制性刷新缓存区;
  • public void write(byte[] b):将字节数组中的数据写入到输出流里;
  • public void write(byte[] b,int off,int len):将字节数组的数据指定区间写入到输出流里;
  • public abstract void write(int b):将单个字节写入到输出流里;

4、OutputStream的子类为:ByteArrayOutputStream字节输出流;FileOutputStream文件输出流(重点);FilterOutputStream过滤器输出流;ObjectOutputStream对象输出流;PipedOutputStream管道输出流
5、FileOutputStream:一般用于向文件写入数据
(1)构造方法:public FileOutputStream(File file);public FileOutputStream(String name);public FileOutputStream(String name,boolean append)append默认是false,表示覆盖

  • 实例化FileOutputStream的一个对象
  • 如果这个文件不存在,会默认创建这个文件
  • 把FileOutputStream指向需要写入数据的位置(文件)
写入数据的原理:java-->jvm-->OS(操作系统)-->调用系统的写入方法  

(2)写入数据的基本步骤:实例化对象==》调用其写入方法==》关闭资源
6、BufferedOutputStream是FilterOutputStream的直接子类,内部封装了一个字节数组(自带缓冲区)
(1)构造方法:public BufferedOutputStream(OutputStream out)
(2)主要方法:

  • public void flush():刷新此缓冲的输出流(也就是把缓冲区的数据写入到文件里)
  • void write(byte[] b, int off, int len):将指定byte数组中从偏移量off开始的len个字节写入此缓冲的输出流;
  • void write(int b):要写入的字节的长度;

7、InputStream的常规方法:

  • public int available():返回的是当前输入流里的字节数;
  • public void close():关闭资源的方法;
  • public abstract int read():一个一个字节读取(返回值是读取的具体数据《内容为0-127,对应ASCAII码表,如果是其他,对应系统的编码格式返回int类型》返回-1,表示读取完毕),每调用一次,指针往后移一个单位;
  • public int read(byte[] b):把数组读取到字节数组里(数组就是缓冲区,一般数组长度为1024的倍数),返回值是读取的有效字符长度;
  • public int read(byte[] b,int off,int len):可以读取指定区间的数据,off起始位置,len长度;

8、InputStream的子类为:ByteArrayInputStream字节输入流;FileInputStream文件输入流;FilterInputStream过滤器输入流;ObjectInputStream对象输入流;PipedInputStream管道输入流;SequenceInputStream合并(流)输入流
9、FileInputStream:一般用于从文件中读取数据
(1)构造方法:public FileInputStream(File file);public FileInputStream(String name)

  • 创建FileInputStream的对象
  • 把FileInputStream对象指向需要读取的文件的位置
读取数据的原理:java-->jvm-->OS(操作系统)-->调用系统的读取方法  

(2)读取数据的基本步骤:实例化对象==》调用其读取方法==》关闭资源
10、BufferedInputStream是FilterInputStream的直接子类,内部封装了一个字节数组(自带缓冲区)
(1)构造方法:public BufferedInputStream(InputStream in)
(2)读取方法:public int read();public int read(byte[] b,int off,int len);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值