Java中的IO

流 IO

在 Java 中所有数据都是使用流读写的。流是一组有序的数据序列,将数据从一个地方带到另一个地方。其实Java IO流和水流是类似的,他们具有最基本的特点,即流是一维的,流是单向的,对应的操作就是单向读取和单向写入的。根据数据流向的不同,可以分为输入(Input)流和输出(Output)流两种。
Java 中的IO主要包含3个部分:
1.流式部分—IO的主体部分
2.非流式部分—辅助流式部分,如File类
3.文件读取部分和安全相关的类
Java IO流可以概括为“两个对应,一个桥梁”:
两个对应指字节流和字符流的对应,输入流和输出流的对应;一个桥梁指字节流到字符流的桥梁。分别由4个抽象类来表示流:InputStream、OutputStream、Reader、Writer
File类
File 类是文件和目录路径名的抽象形式,它提供了与平台无关的方法来对磁盘上的文件或目录进行操作

使用 File 类可以获取文件本身的一些信息,例如文件所在的目录、文件长度、文件读写权限等 Java中,File类是java.io包中唯一代表磁盘文件本身的对象。

File 类表示处理文件和文件系统的相关信息。也就是说,File 类不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性。
File类构造方法:
File(File parent,String child) 根据parent抽象路径名和child路径名字符串创建一个新File实例
File(String pathname) 通过将给定的路径名字符串转换成抽象路径来创建一个File实例
File(Stringparent,String child) 根据parent路径名字和child路径名字符串创建一个新File实例
File(URI uri) 通过将给定的File:URI转换成一个抽象路径来创建一个新的File实例
File类常用方法
在这里插入图片描述

字节流

字节流是指传输过程中,传输数据的最基本单位是字节的流,一个不包含边界数据的连续流;字节流是由字节组成的,主要用在处理二进制数据。
常用的字节输入流主要有:
InputStream (这个抽象类是表示输入字节流的所有类的超类)
FileInputStream(FileInputStream从文件系统中的文件获取输入字节。 什么文件可用取决于主机环境。 FileInputStream用于读取诸如图
像数据的原始字节流。)
BufferedInputStream (BufferedInputStream不是InputStream的直接实现子类,是FilterInputStream的子类)

常用的字节输出流主要有:
OutputStream(这个抽象类是表示字节输出流的所有类的超类。 输出流接收输出字节并将其发送到某个接收器。 需要定义OutputStream
子类的应用OutputStream必须至少提供一个写入一个字节输出的方法。)
FileOutputStream( FileOutputStream流是指文件字节输出流,专用于输出原始字节流如图像数据等,其继承OutputStream类,拥有输
出流的基本特性)
BufferedOutputStream (BufferedOutputStream不是OutputStream的直接实现子类,是FilterOutputStream的子类)

字符流

字符流–传输过程中,传输数据的最基本单位是字符的流。
常见的字符输入流有:
Reader(用于读取字符流的抽象类。 子类必须实现的唯一方法是read(char [],int,int)和close()。 然而,大多数子类将覆盖这里
定义的一些方法,以便提供更高的效率)
InputStreamReader(InputStreamReader类是从字节流到字符流的桥接器:它使用指定的字符集读取字节并将它们解码为字符。)
FileReader (该类的构造函数假定默认字符编码和默认字节缓冲区大小是适当的。 要自己指定这些值,请在FileInputStream上构造一个
InputStreamReader。 FileReader是用于读取字符流)
BufferedReader(从字符输入流读取文本,缓冲字符,以提供字符,数组和行的高效读取。 可以指定缓冲区大小,或者可以使用默认
大小。默认值足够大,可用于大多数用途。 通常,由读取器做出的每个读取请求将引起对底层字符或字节流的相应读取请求。)

常见的字符输出流有:
Writer(Writer类是Java IO中所有Writer的基类。子类包括BufferedWriter和PrintWriter等等。)
OutputStreamWriter (OutputStreamWriter是字符的桥梁流以字节流:向其写入的字符编码成使用指定的字节charset 。 它使用的字符集可
以由名称指定,也可以被明确指定,或者可以接受平台的默认字符集。 )
FileWriter (FileWriter 类从 OutputStreamWriter 类继承而来。FileWriter是用于写入字符流。)
BufferedWriter(该类具有缓冲区,在写入的过程中首先将字符填充缓冲区,然后在将缓冲区的内容交由操作系统写入磁盘上的文件,
这样就提高了性能,避免了对每个字符写入磁盘的频繁操作)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值