Java I/O流

本文深入讲解Java IO流体系,包括输入输出流、字节流与字符流、节点流及处理流的概念与分类。同时,介绍Java7引入的NIO2升级,以及各种流的具体实现类如FileInputStream、BufferedReader等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

IO(输入/输出)
Java IO通过 java.io 包下的类和接口来实现,主要包括输入、输出两种IO流。
Java IO流使用了一种装饰器设计模式,它将IO流分为了底层节点流和上层处理流;其中节点流用于和底层的物理存储节点直接关联—不同的物理节点获取节点流的方式可能存在一定的差异,但程序可以把不同的物理节点流包装成统一的处理流,从而允许程序使用统一的输入、输出代码来读取不同的物理存储节点的资源。

Java 7 在 java.nio 及其子包下提供了一系列全新的API,对原有的IO进行升级,也称为 NIO2。

流的分类

  1. 输入流和输出流
    输入流:主要由 InputStream 和 Reader 作为基类
    输出流:主要由 OutputStream 和 Writer 作为基类。
  2. 字节流和字符流:用法几乎完全一致,只是处理的数据单位不一样。
    字节流:操作的数据单位是8位的字节; 主要是以 InputStream 和 OutputStream 作为基类;
    字符流:操作的数据单位是16位的字符;主要是以 Reader 和 Writer 作为基类;
  3. 节点流 和 处理流: 按照流的角色来划分。
    可以向一个特定I/O设备读/写数据的流,称为 节点流。
    处理流 则用于对一个已存在的流进行连接或封装,通过封装后的流来实现读/写功能。

输入输出流体系

分类字节输入流字节输出流字符输入流字符输出流
抽象基类InputStreamOutputStreamReaderWriter
访问文件FileInputStreamFileOutputStreamFileReaderFileWriter
访问数组ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter
访问管道PipedInputStreamPipedOutputStreamPipedReaderPipedWriter
访问字符串StringReaderStringWriter
缓冲流BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter
转换流InputStreamReaderOutputStreamWriter
对象流ObjectInputStreamObjectOutputStream
抽象基类FilterInputStreamFilterOutputStreamFilterReaderFilterWriter
打印流PrintStreamPrintWriter
推回输入流PushbackInputStreamPushbackReader
特殊流DataInputStreamDataOutputStream

说明:
粗体字标出的类代表节点流,必须直接与指定的物理节点关联。
斜体字标出的类代表抽象基类,无法直接创建实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值