JAVA
I/O
1.
基本概念
:
I/O(Input/Output):
输入输出
数据源
(Data Source):
提供数据的地方
,
包括键盘输入
,
硬盘文件
,
网络文件等
数据宿
(Data Sink):
接收数据的地方
,
包括显示器
,
硬盘文件
,
打印机等
.
2.
流
(Stream):JAVA
中把不同的数据源与程序间的数据传输都抽象表述为
”
流
”(Stream),
从而完成输入输出操作
I/O
流的分类
:
>
输入流
(Input Stream)
和输出流
(Output Stream)
输入流只能从中读取数据
,
而不能向其中写入数据
.
输出流只能从中写入数据
,
而不能读取其中的数据
.
特例
:java.io.RandomAccessFile
可以随机读写文件
.
>
节点流
(Node Stream)
和处理流
(Processing Stream)
节点流是直接连接到数据源的
处理流是对一个已经存在的流的连接和封装
,
通过封装
,
可增强数据的读写功能
.
>
字节流
(Byte Stream)
和字符流
(Character
Stream)
字节流以字节为单位进行传输
,
如字母
字符流以字符
(2
个字节
)
为单位进行传输
,
如中文字符
3.
类层次结构
|
字节流
|
字符流
|
输入流
|
InputStream
|
Reader
|
输出流
|
OutputStream
|
Writer
|
注
:
所有的流类型均继承于以上四个抽象流类型
.
且所有以
InputStream
或
OutputStream
结尾的均为字节流
,
所有以
Reader
或
Writer
结尾的均为字符流
.
*InputStream
抽象类是所有字节输入流的超类,
子类对此进行了分化和扩展,
类层次结构图为:
<!----><!----><!---->
<!---->
<!---->
*OutputStream
抽象类是所有字节输出流的超类.
与InputStream
类相对应
*Reader
抽象类是
<!----><!----><!---->
<!---->
<!---->所有字符输入流的超类
<!----><!----><!---->
<!---->
<!---->
*Writer
抽象类是所有字符输出流的超类
<!----><!----><!---->
<!---->
<!---->
4.
常用的
I/O
流类型
>FileInputStream
和
FileOutputStream
FileInputStream
用于读取本地文件中字节数据
FileOutputStream
用于将字节数据写出到文件中
>FileReader
和
FileWriter
FileReader
用于以字符为单位读取文件数据
FileWriter
用于将字符数据写出到文件中
.
>BufferedReader
和
BufferedWriter
BufferedReader
用于缓冲读取字符
,BufferedWriter
则提供字符的缓冲写出功能
>InputStreamReader
和
OutputStreamWriter<
处理流类
>
InputStreamReader
可封装字节输入流并从中读取字节数据
,
然后将其转换为字符
.
转换时可以在构造方法中设定字符编码
,
也可以使用操作系统的默认字符编码
.
public
InputStreamReader(InputStream in)
public InputStreamReader(InputStream in,String
charsetName)
OutputStreamWriter
与
InputStreamReader
相对应
,
它可以按照特定的字符编码规则把字符转化为字节并写出到它所封装的字节输出流
.
>PrintStream
和
PrintWriter
PrintStream
在
OutputStream
基础之上提供了增强的功能
,
即可以方便的输出各种类型的数据
(
而不仅限于
byte
类型
).PrintStrem
的方法从不抛出
IOException.
Printwriter
提供了
PrintStream
的所有打印方法
,
其方法也从不抛出
IOException
与
PrintStream
的区别
:
作为处理流使用时
,PrintStream
只能封装
OutputStream
类型的字节流
,
而
PrintWriter
既可以封装
OutputStream,
也能封装
Writer
类型的字符输出流并增强其功能
.
>DataInputStream
和
DataOutputStream
二者分别实现了
DataInput/DataOutput
接口
DataInputStream
能够以一种与机器无关的方式
,
直接从底层字节输入流读取
JAVA
基本类型和
String
类型的数据
DataOutputStream
则能够直接将
JAVA
基本类型和
String
类型数据写出到其他的字节输出流
.
>CharArrayReader
和
CharArrayWriter
CharArrayReader
实现了一个可用作字符输入流的字符缓冲区
CharArrayWriter
实现一个可当作
Writer
使用的字符输出缓冲区
.
5.
随机读写文件
RandomAccessFile
分享到:
相关推荐
### Java I/O详细笔记 #### 一、流的分类 Java I/O系统主要涉及四种基本的流分类方式:根据数据流动的方向、数据处理的类型、流处理的源以及是否使用了缓冲机制。 **1. 按数据流动方向** - **输入流(Input ...
Java I/O学习笔记: 磁盘操作 字节操作 字符操作 对象操作 网络操作 NIO & AIO Java I/O Java是一种面向对象的编程语言,由Sun Microsystems于1995年推出。它是一种跨平台的语言,意味着可以在不同的操作系统上运行...
本教程详细讲解了这些知识点,并配以代码示例和笔记,旨在帮助学习者逐步掌握Java I/O流的使用,无论你是初学者还是有一定经验的开发者,都能从中受益。通过深入学习和实践,你将能够熟练地处理各种数据输入输出场景...
Java I/O操作是Java编程中不可或缺的一部分,它主要用于数据的输入和输出处理。在这个总结中,我们将深入探讨Java I/O的几个关键知识点。 首先,我们要理解I/O的基本概念。I/O,即Input/Output,指的是计算机系统与...
笔记通常涵盖了语言的基础概念、核心特性、类与对象、内存管理、多线程、异常处理、输入/输出(I/O)系统等方面的内容。 【描述】"别下别下别下别下别下别下别下别下别下别下别下别下别下别下别下别下别下别下别下" ...
通过对PrintStream和PrintWriter的分析,我们可以看到,Java I/O流是一个非常复杂的系统,但是了解每个组件的作用和使用场景,可以帮助我们更好地使用Java I/O流。 在实际应用中,我们可以使用PrintStream和...
手册通常包含Java语法、类库函数、异常处理、集合框架、I/O流、多线程、网络编程等众多内容。熟悉这些内容能帮助开发者快速定位问题,提高编程效率。 最后,Java数据结构与算法是提升程序性能和解决问题的关键。...
O'Reilly的《Java I/O》第二版是一本深入探讨这一主题的经典书籍,它详尽地介绍了Java IO系统的设计、工作原理以及如何有效地使用这些工具。中文翻译和学习笔记的出现,为中文读者提供了极大的便利,能够帮助他们更...
文件I/O操作是任何编程语言都不可或缺的部分,Java也不例外。笔记会讲解如何在Java中读写文件,理解流的概念,以及文件的复制、追加等操作。 在面向对象高级特性的部分,笔记可能包含抽象类、接口、内部类、匿名类...
第十四章 标准I/O流与文件.............84 第十五章 网络编程.89 Tiger学习笔记..................94 第一章 Java5.0新特性.......................94 第二章 基础知识.....96 第三章 泛型...........101 第四章 ...
- 文件I/O操作:使用`java.io`包,如`FileWriter`和`BufferedReader`,将笔记内容写入和读取文件。可能需要JSON或XML序列化技术来保存额外的元数据,如撤销历史。 - 文件对话框:`JFileChooser`类提供了一种让用户...
11. **Java IO/NIO**:深入理解流的分类,学习非阻塞I/O模型NIO(New Input/Output)。 12. **Java 8及更高版本新特性**:包括Lambda表达式、Stream API、Optional类、日期时间API的改进等。 这些笔记内容全面覆盖...
JDK 5.0引入了新的I/O模型——非阻塞I/O,通过`java.nio`包提供,允许程序在等待数据准备就绪时执行其他任务,提高了I/O操作的性能。 10. **反射(Reflection)** 反射API允许在运行时检查和修改类、接口、字段和...
5. **NIO.2文件系统API**:引入了`java.nio.file`包,提供了一套新的文件系统操作API,支持文件路径操作、文件属性查询和变更、文件观察等,相比传统的I/O操作更加强大和高效。 6. **字符串拼接优化**:JDK 7对字符...
接着,文件I/O、异常处理和集合框架也是Java的重要部分。这部分笔记可能涉及File类、IOException、try-catch-finally语句以及ArrayList、LinkedList、HashMap等集合类的使用。 此外,笔记可能还会涵盖线程与并发,...
Java的I/O流系统用于读写数据,包括字符流和字节流。文件输入输出、网络通信和数据转换都依赖于I/O流。这部分笔记可能详细介绍了`InputStream`、`OutputStream`、`Reader`、`Writer`及其子类,以及缓冲流和转换流的...
Java的I/O流体系提供了处理输入输出的机制,包括字符流和字节流。File类用于文件的创建、删除、重命名等操作。 【反射与注解处理】 反射允许在运行时检查类、接口、字段和方法的信息,甚至动态调用方法。注解...
总的来说,这份"Java学习笔记PPT"是初学者和进阶者学习Java的理想资料,覆盖了语言基础、面向对象、集合框架、异常处理、I/O系统、多线程等多个方面,旨在帮助读者系统地掌握Java编程技能,并能灵活运用到实际项目中...
总的来说,"用Java语言笔记本"项目是一个全面学习Java基础知识的理想实践,涵盖了类设计、文件I/O、GUI编程等多个重要领域,对Java初学者来说具有很高的学习价值。通过分析和修改源代码,学习者不仅可以深入理解Java...