带你深入了解Java!十八、输入和输出处理(一)!

< 输入和输出处理(一)>

学习阶段存储方式的演变
临时存储:变量 ——> 数组 ——> 对象 ——> 对象数组 ——> 集和[最常用的程序内临时存储方式]
持久的存储方式: 文件

一、掌握 File 类的常用API

文件的概念:相关记录或者放在一起的数据集合。他是需要存储在‘长期存储’的设备上的,有它我们可以实现持久化存储
java.io.File;类:可以实现对文件(File)/文件(目录briectory)的操作

  • 构造方法:
    1、 File(String pathname)直接根据字符串类型地址获取对应的文件对象
    2、 File(String parent,String child)根据字符串类型的父路径和子路径获取对应的文件对象
    3、 File(File parent,String child)根据文件类型的父路径和字符串类型的子路径获取对应的文件对象

    在这里插入图片描述
  • 普通方法:
    1、获取对应的字节数:long length();
    2、判断文件目录/文件是否存在: boolean exists();
    3、判断是否是文件: boolean isFile();
    4、判断是否是文件夹: boolean isDirectory();
    5、获取相对路径:String getPath();你可以理解为 File传入什么路径就得到射门么路径
    6、获取绝对路径: String getAbsolutepath()如果File构造传入的是相对路径 则可以根据它找到对应的绝对路径,但是如果本身就是路径,则直接显示
    File getAbsoluteFile()返回的是一个File类对象
    7、创建文件: boolean createNewFile();
    8、创建文件夹:boolean mkdir();
    9、删除文件/空文件夹: boolean delete();
    10、获取文件名称:String getName();
    11、获取文件夹的所有子目录的绝对路径: File[] listFiles();
    12、获取文件夹的内容: String[] list();

    在这里插入图片描述
    在这里插入图片描述
  • 运用递归显示查找目录下所有文件夹:
    在这里插入图片描述

二、掌握流的概念和分类

在这里插入图片描述

  • I/O 流的概念:
    输入/输出 流:
    :水流、电流、车流、数据流…流动的概念
    流动性
    方向性:相对于程序参照物,流是由读取和写入操作,是具有方向的

流的分别类
按照方向性分类:
输入流:读 InputStream Reader
输出流:写 OutputStream Writer

按照处理单元:

  • 字节流:可以用来传出一切内容。音频、视频、图片、文本…`【根据美国ASCLL码进行通信传输的】
    字节输入流: InputStream 字节输出流: OutputStreanm
  • 字符流:可以用来传输文本内容【根据不同国家进行了相对应文字转换(它是基于字节流产生的)】
    字符输入流: Reader 字符输出流: Writer
  • 基类是抽象类无法创建对象,所以寻找对应的子类
    FileInputStream
    FileOutputStream

三、掌握使用字节流实现文件复制

字节输入流:FileInputStream

  • 构造:
    在这里插入图片描述
  • 常用方法:
    1、 读取一个字节数据,如果到了输入流的末尾会返回 -1:int read();
    2、 读取一个字节数组长度的字节数据 返回世界读取到的字节数量,如果到了输入流的末尾会返回 -1:
    int read(byte[] b);
    3、 读取输入流中从指定索引开始,指定长度的字节数据到字节数组中,如果到了输入流的末尾会返回 -1:int read(byte b,int offs,int len);
    4、 关流:void colse();
    5、 可以从输如流中读取的字节数目: int available();

字节输出流:FileOutputStream

  • 构造
    在这里插入图片描述
  • 常用方法:
    1、 输出一个字节:void write();
    2、 输出一个字节数组的内容:void write(byte[] b);
    3、 输出一个字节数组中的指定范围内容:void write(byte[] b,int offs,int len);
    4、 关流:void close();
    5、 强制将缓冲区清空: flush();

示例:
在这里插入图片描述

笔记

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Gastby98/article/details/89716614
今日推荐