输入/输出

File 类

不管是文件还是目录,都是使用File来操作的,File能新建、删除、重命名文件和目录,File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。

访问文件和目录

String getName():返回此 File 对象所表示的文件名或路径名
boolean exists():判断 File 对象对应的文件或目录是否存在
boolean isFile():判断 File 对象所对应的是否是文件,不是目录
boolean isDirectory():判断 File 对象所对应的是否是目录,不是文件
String[] list():列出 File 对象的所有子文件名和路径名
File[] listFile():列出 File 对象的所有子文件和路径名

Java 的 IO 流

流的分类
  • 输入流和输出流
    按照流的流向来分,可以分为输入流和输出流

    1. 输入流:只能从中读取数据,而不能写出数据(硬盘到内存)
    2. 输出流:只能写而不能读(内存到硬盘)
    • Java 的输入流主要由 InputStream 和 Reader 作为基类,输出流主要由 OutputStream 和 Writer 作为基类。
  • 字节流和字符流
    用法完全相同,区别在于字节流和字符流操作的数据单元不同:字节流操作的最小数据单元是8位的字节,而字符流操作的最小数据单元是16位的字符(在Java中,字符采用16位的unicode编码方式编码)。

    字节流主要由 InputStream 和 OutputStream 作为基类,而字节流主要由 Reader 和 Writer 作为基类。

  • 节点流和处理流
    按照流的节点划分,可以分为节点流和处理流。

    可以从/向一个特定的IO设备读/写数据的流,称为节点流。

    处理流则用于对一个已存在的流进行连接或封装,通过封装后的流实现读写的功能。处理流也称为高级流。

输入/输出流体系

处理流的用法

使用处理流的典型思路是:使用处理流来包装节点流,程序通过处理流来执行输入/输出的功能,让节点流与底层的I/O设备、文件交互。

我们识别处理流非常简单,只要流的构造器参数不是一个物理节点,而是一个已经存在的流,那么这种流就一定是处理流。

Java 中常用的节点流
  • 文件:FileInputStream、 FileOutputStream、 FileReader、 FileWriter 文件进行处理的节点流。
  • 字符串: StringReader、 StringWriter 对字符串进行处理的节点流。
  • 数 组 ByteArrayInputStream、 ByteArrayOutputStream、 CharArrayReader、 CharArrayWriter 对数组进行处理的节点流(对应的不再是文件,而是内存中的一个数组)。
  • 管道: PipedInputStream、 PipedOutputStream、PipedReaderPipedWriter对管道进行处理的节点流。
  • 父 类 InputStream、 OutputStream、 Reader、 Writer
Java 中常用的处理流
  • 缓冲流:BufferedInputStrean、 BufferedOutputStream、 BufferedReader、 BufferedWriter增加缓冲功能,避免频繁读写硬盘。
  • 转换流:InputStreamReader、 OutputStreamReader实现字节流和字符流之间的转换。
  • 数据流 DataInputStream、 DataOutputStream 等-提供将基础数据类型写入到文件中,或者读取出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值