IO流小结

IO流

1.File类

  1. File:它是文件和目录路径名的抽象表示
  • 文件和目录是可以通过File封装成对象的
  • 对于File而言,其封装的并不是一个真的存在的文件,仅仅只是一个路径名而已。他可以是存在的,也可以是不存在的,将来是要通过具体的操作把路径的内容转换为具体存在的。
  1. 构造方法

    FileString pathName):通过将给定的路径名字符串转换为抽象路径名来创建新的File实例
    FileString parent,String child):从父路径名字符串和子路径名字符串创建新的File实例
    FileFile parent,String child):从父抽象路径名和子路径名字符串创建新的File实例
    
  2. 创建功能

    public boolean createNewFile()  当具有该名称的文件不存在时,创建一个由该抽象路径名命							   名的新空文件,返回true;否则返回false;父目录路径不存							   在报错。
    public boolean mkdir() 创建由此抽象路径名命名的目录;目录不存在创建返回ture,否则						 false;父目录不存在报错;
    public boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必须但不存在的父目录;创					     建成功返回true,不成功返回false
  3. 判断和获取功能

    public boolean isDirectory():测试此抽象路径名表示的File是否为目录
    public boolean isFile():测试此抽象路径名表示的File是否为文件
    public boolean exists():测试此抽象路径名表示的File是否存在
    public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串
    public String getPath():返回此抽象路径名转换为路径名字符串
    public String getName():返回此抽象路径名表示的文件或目录的名称
    public String[] list():返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
    public File[] listFiles():返回此抽象路径明表示的目录中的文件和File对象数组
    
  4. File类的删除功能

    public boolean delete():删除由此抽象路径名表示的文件和目录(目录必须为空才能删除)
    

    案例:清空某个目录

        private static void deleteFile(File file) {
            if (file.isFile()) {
                file.delete();
            } else {
                File[] files = file.listFiles();
                for (File file1 : files) {
                    deleteFile(file1);
                }
                file.delete();
            }
        }
    

2. IO流

  1. IO流概述和分类

    1. 按照数据流向分为输入流和输出流
    2. 按照数据类型分为字节流和字符流
  2. 字节流抽象基类

    1. InputStream:这个抽象类是表示字节输入流的所有类的超类
    2. OutputStream:这个抽象类是表示字节输出流的所有类的超类
    3. 子类名特点:子类名称都是以其父类名作为子类名的后缀
  3. FileOutputStream:文件输出流用于将数据写入File

    • FileOutputStream(String name):创建文件输出流以指定名称写入文件
    • FileOutputStream(String name,boolean append):是否追加写入
    • void write(int b):将指定的字节写入此文件输出流,一次写一个字节数据
    • void write(byte[] b):将b.length字节从指定字节数组写入此文件输出流,一次写一个字节数组数据
    • void write(byte[] b,int off,int len):将len字节从指定的字节数组开始,从偏移量off开始写入次文件输出流,一次写一个字节数组的部分数据

    注意:输出流写出完毕后一定要释放,释放前一定要判断是否存在该流!!!

  4. FileInputStrem:从文件系统中的文件获取输入字节

    • FileInputStream(String name):通过打开与实际文件的连接来创建一个FileInputStream,该文件由文件系统中的路径名name命名。
    • read():读取一个字节的数据并返回
    • read(byte[] bytes):读取一个数组的数据,放入bytes中,返回读取到的字节数
  5. 字节缓冲流

    1. BufferedOutputStream:该类实现缓冲输出流。通过设置这样的输出流,应用程序可以向底层输出流写入字节,而不必为写入的每个字节导致底层的调用
      • BufferedOuputStream(OuputStream os)
    2. BufferedInputStream:创建BufferedInputStream将创建一个内部缓冲区数组。当从流中读取或跳过字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次很多字节
      • BufferedInputStream(InputStream in)
    3. 字符缓冲流仅仅提供缓冲区,而真正的读写数据还得依靠基本的字节流对象进行操作
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值