Java IO层次体系结构[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。
在整个Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable.掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识了
Java I/O主要包括如下几个层次,包含三个部分:
1.流式部分――IO的主体部分;
2.非流式部分――主要包含一些辅助流式部分的类,如:File类、RandomAccessFile类和FileDescriptor等类;
3.其他类–文件读取部分的与安全相关的类,如:SerializablePermission类,以及与本地操作系统相关的文件系统的类,如:FileSystem类和Win32FileSystem类和WinNTFileSystem类。
主要的类如下:
1. File(文件特征与管理):用于文件或者目录的描述信息,例如生成新目录,修改文件名,删除文件,判断文件所在路径等。
2. InputStream(二进制格式操作):抽象类,基于字节的输入操作,是所有输入流的父类。定义了所有输入流都具有的共同特征。
3. OutputStream(二进制格式操作):抽象类。基于字节的输出操作。是所有输出流的父类。定义了所有输出流都具有的共同特征。
Java中字符是采用Unicode标准,一个字符是16位,即一个字符使用两个字节来表示。为此,JAVA中引入了处理字符的流。
4. Reader(文件格式操作):抽象类,基于字符的输入操作。
5. Writer(文件格式操作):抽象类,基于字符的输出操作。
6. RandomAccessFile(随机文件操作):它的功能丰富,可以从文件的任意位置进行存取(输入输出)操作。
Java中IO流的大概体系结构如图:
java输入/输出流体系中常用的流的分类表
分类 | 字节输入流 | 字节输出流 | 字符输入流 | 字符输出流 |
---|---|---|---|---|
抽象基类 | InputStream | OutputStream | Reader | Writer |
访问文件 | FileInputStream | FileOutputStream | FileReader | FileWriter |
访问数组 | ByteArrayInputStream | ByteArrayOutputStream | CharArrayReader | CharArrayWriter |
访问管道 | PipedInputStream | PipedOutputStream | PipedReader | PipedWriter |
访问字符串 | StringReader | StringWriter | ||
缓冲流 | BufferedInputStream | BufferedOutputStream | BufferedReader | BufferedWriter |
转换流 | InputStreamReader | OutputStreamWriter | ||
对象流 | ObjectInputStream | ObjectOutputStream | ||
抽象基类 | FilterInputStream | FilterOutputStream | FilterReader | FilterWriter |
打印流 | PrintStream | PrintWriter | ||
推回输入流 | PushbackInputStream | PushbackReader | ||
特殊流 | DataInputStream | DataOutputStream |
注:表中粗体字所标出的类代表节点流,必须直接与指定的物理节点关联:斜体字标出的类代表抽象基类,无法直接创建实例。
字节流结构图:
字符流结构图:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/135431.html原文链接:https://javaforall.cn
相关文章
- java long string 转换_Java long 转成 String的实现[通俗易懂]
- java怎么调用.asmx_Java调用Webservice(asmx)的例子
- java卸载 安装错误_Java卸载后无法重新安装 提示已安装过[通俗易懂]
- java random函数用法_JAVA的Random类的用法详解[通俗易懂]
- Java实现文件写入——IO流(输入输出流详解)[通俗易懂]
- java是面向对象还是面向过程_Java面向对象编程和面向过程编程的区别[通俗易懂]
- java开发常用四大框架_大牛经验!常用的5款Java框架汇总[通俗易懂]
- java启动器_JAVA基础:Java 启动器如何查找类
- java编写一个学生类和教师类,Java创建一个学生类[通俗易懂]
- java messagedigest_Java 自带的加密类MessageDigest类(加密MD5和SHA)[通俗易懂]
- java redis锁_Java中Redis锁的实现[通俗易懂]
- java基本数据类型 think in java_Think in Java(一):Java基础[通俗易懂]
- jni 头文件_java.io.file
- java notifyall_Java Thread notifyAll()方法[通俗易懂]
- java事务_Java 事务详解[通俗易懂]
- Java数组循环_java遍历object数组
- java JNI: C 语言调用 Java 方法示例详解编程语言
- Java与Oracle联手构建数据库新世界(java和oracle)
- 数据处理破解Java中Redis数据过期问题(redisjava过期)
- Java与Linux:前景迷人的新科技(java和linux前景)
- Linux下Java命令:简介与基本用法(linux下java命令)
- 让Java开发能力在Linux下得到更大发挥(java linux编程)
- 数据Java操作MySQL库:获取你所需的数据(java获取mysql)
- Linux IO重定向:从技术术语到实际应用(linux io重定向)
- Java存入Oracle数据库实现快速高效的数据存储(java存入oracle)