day19: IO、OutputStream、FileOutputStream、高效流(缓冲区,一个一个存取)、字符流

这篇博客详细介绍了Java中的IO流,包括OutputStream和FileOutputStream的使用,如字节流的写入操作和原理,以及高效流的概念和应用。同时,也涵盖了InputStream和FileInputStream的读取方法,字符流Writer和Reader的写入与读取操作。内容深入浅出,通过案例分析了文件复制的过程,并强调了资源关闭的重要性。
摘要由CSDN通过智能技术生成

一 回顾

1.File 文件对象
2.构造方法:
     A.public File(File parent,String child)
     B.public File(String pathname)
     C.public File(String parent,String child)
3.常规的方法
    创建:
      public boolean createNewFile() 创建空的文件
      public boolean mkdir() 创建一级目录
      public boolean mkdirs() 创建多级目录
    删除
      public boolean delete() 删除文件和空文件夹(一级目录)
    剪切与重命名
       public boolean renameTo(File dest) 同目录重命名  不同目录剪切
    判断性
      public boolean exists() 判断文件是否存在
      public boolean isDirectory() 判断是否是文件夹
      public boolean isFile() 判断是否是文件
    得到性
      public String getAbsolutePath() 获取绝对路劲的字符串
      public String getParent() 获取父路径
      public String getName() 获取文件名称
      public long length() 获取文件内容的长度
      public String getPath() 获取文件对象构造方法的路劲File
  3.递归:
      A.方法反复自己调用自己
      B.注意点:
         a.递归中方法的参数逐渐变小  朝着不递归的方向发展
         b.递归避免栈内存溢出
      C.递归的内存图
​

二 IO

2.1 简介

1.I==>Input  输入   Output 输出   用于不通过设备进行信息的交互
2.使用的场景:
    A.文件的复制
    B.文件上传的下载
    C.(即时通信)微信中信息的传递
3.IO 分类
   流向划分:输入流与输出流
   类型划分:字节流与字符流
4.输入流与输出流的解释
5.字节流与字符流的解释
  字节流:
     A.万物皆字节  系统上任何的资源都可以使用字节来进行表示  
     B.一般读写文件 音视频 图片
     C.分类:字节输入流(读)   字节输出流(写)
  字符流:  
      A.字符流=字节流+编码表 字符流的底层也是使用字节流来进行操作的  只能底层通过编码表将字节转换为字符
      B.读取纯字符的文件 
      C.分类:字符输入流(读) 与字符输出流(写)
6.IO操作的注意点:
   A.所有的流的资源都是java.io包下
   B.使用流资源的时候 可能会产生异常 需要对异常处理(捕获 抛出)
   C.所有的流资源使用之后 必须进行关闭 因为流资源比较消耗内存

step01-输入流与输出流的解释

2.2 OutputStream

2.2.1简介

1.此抽象类是表示输出字节流的所有类的超类
  A.OUtputStream 是一个抽象类
  B.OutputStream输出字节流的所有类的超类

2.2.2 常用的方法

方法的名称 方法的描述
public void close() 关闭流资源
public void flush() 将缓冲区的数据刷新到硬盘中
public abstract void write(int b) 一个一个字节写入
public void write(byte[] b) 将字节数组的内容写入
public void write(byte[] b, int off, int len) 将字节数组的指定的长度的内容写入

2.2.3 子类

2.3 FileOutputStream

2.3.1简介

A.文件输出流是用于将数据写入 File  将数据写入到文件中
B.FileOutputStream 用于写入诸如图像数据之类的原始字节的流
C.要写入字符流,请考虑使用 FileWriter

2.3.2 构造方法

构造方法的名称 构造方法的描述
public FileOutputStream(File file) 创建一个向指定 File 对象表示的文件中写入数据的文件输出流
public FileOutputStream(String name) 创建一个向具有指定名称的文件中写入数据的输出文件流
public FileOutputStream(String name, boolean append) 创建一个向具有指定 name 的文件中写入数据的输出文件流(为false则 文件头开始写入,为true 在文件内容末尾出开始写入)

2.3.3 构造方法的三件事

A.实例化FileOutputStream
B.创建一个空的文件
C.将FileOutputStream 对象指向这个空的文件

2.3.4 使用的步骤

A.实例化FileOutputStream
B.调用写的方法
C.关闭资源

2.3.5 一个一个字节写入

package com.qf.demo01;
​
import java.io.FileOutputStream;
import java.io.IOException;
​
public class Test01 {
    public static void main(String[] args) throws IOException {
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LI JS@你猜啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值