看了千篇一律的io总结后,再看这一篇有种茅塞顿开的感觉。
JAVA IO操作总结——节点流和处理流 按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流和处理流两类。
节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader
处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader。处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。
常用的节点流
父 类 InputStream OutputStream Reader Writer
文 件 *FileInputStream FileOutputStrean FileReader FileWriter 文件进行处理的节点流
数 组 *ByteArrayInputStream ByteArrayOutputStream CharArrayReader CharArrayWriter 对数组进行处理的节点流(对应的不再是文件,而是内存中的一个数组)
字符串 *无 无 StringReader StringWriter 对字符串进行处理的节点流
管 道 *PipedInputStream PipedOutputStream PipedReader PipedWriter 对管道进行处理的节点流
常用处理流(关闭处理流使用关闭里面的节点流)
父 类 InputStream OutputStream Reader Writer
缓冲流 *BufferedImputStrean BufferedOutputStream BufferedReader BufferedWriter ----需要父类作为参数构造,增加缓冲功能,避免频繁读写硬盘,可以初始化缓冲数据的大小,由于带了缓冲功能,所以就写数据的时候需要使用flush方法咯
转换流 *InputStreamReader OutputStreamWriter- 要inputStream或OutputStream作为参数,实现从字节流到字符流的转换
数据流 *DataInputStream DataOutputStream -提供将基础数据类型写入到文件中,或者读取出来,为什么要有这个流呢?看这样的分析,如果没有这种流的话,有一个long,本身只占8个字节,如果我要写入到文件,需要转成字符串,然后在转成字符数组,那空间会占用很多,但是有了这种流之后就很方便了,直接将这8个字节写到文件就完了。。是不是既节约了内存空间有让程序写起来更加方便简单了呐。写倒是很简单,但是读取的时候就注意了,根据读取的数据类型,指针会往下移,所以你写的顺序必须要和读的顺序一致才能完成你正确的需求。
对象流*ObjectInputStream ObjectOutputStream
打印流*PrintStream,PrintWriter这类流在写入的时候有自动flush的功能,所以你不需要每打印一个东西都flush一次)
System.In====InputStream
System.Out===PrintStream
相关推荐
### JAVA IO操作总结——节点流和处理流 #### 一、概述 在Java中,输入/输出(Input/Output,简称IO)操作是一项非常重要的功能,它涉及到如何从不同的源读取数据以及如何向不同的目的地写入数据。Java IO体系主要...
本文将对Java IO中的节点流和处理流进行详细的总结。 首先,我们来看一下Java IO的基础——节点流。节点流直接与数据源或数据接收器相连,它们直接处理数据源(如文件、数组或字符串)。Java中的基本节点流分为两大...
- **节点流**: 直接从数据源或目的地读写数据,如直接读取文件。 - **处理流(包装流)**: 不直接连接到数据源或目的地,而是对其他流进行封装,以简化操作或提高性能,如缓冲流(`BufferedInputStream`)。 #### 三、...
java IO流学习笔记——(1) IO流总述 • 输入流:数据源到程序...• 节点流和处理流的关系: ① 节点流处于io操作的第一线,所有操作必须通过他们进行; ② 处理流可以对其他流进行处理(提高效率或操作灵活性)。 •
在Java中,我们可以使用`java.io.ObjectOutputStream`和`java.io.ObjectInputStream`进行序列化和反序列化操作。然而,如果需要将对象转换为XML格式,可以使用`javax.xml.bind.annotation.XmlRootElement`注解标记类...
Java IO流是Java平台中处理输入输出操作的重要组成部分,它提供了丰富的类库来高效地读写数据。在Java中,IO流分为字节流和字符流两大类,每类又有输入流和输出流之分。本篇笔记主要讨论的是字节缓冲流、字符缓冲流...
JAVA IO API是Java平台的核心部分,它提供了丰富的类和接口来处理输入输出操作。这篇文章将深入探讨JAVA IO的理论基础、用法分析以及常见的流类型。 一、理论准备 1. 流的概念:流是数据传输的一种抽象表示,它就...
地图管理:添加、修改、编辑、删除...知识点:BFS算法实现AI、IO流 ———————————————— 版权声明:本文为CSDN博主「刘建杰」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
6. **IO流**:理解输入/输出流的分类(字节流和字符流,节点流和处理流),以及File、BufferedReader、InputStreamReader等核心类的使用。 7. **网络编程**:包括Socket编程,TCP和UDP的区别,以及ServerSocket和...
7. **IO流**:理解输入输出流的不同类别(字节流与字符流、节点流与处理流),以及NIO(New IO)的特性。 8. **反射与注解**:了解反射机制如何在运行时获取类的信息并动态操作对象,以及注解的使用和自定义注解的...
学习者需要理解流的分类(字节流和字符流)、流的连接(节点流和处理流)以及如何进行文件操作和数据传输。 7. **多线程**:Java内置对多线程的支持,通过Thread类和Runnable接口,可以创建并控制并发执行的任务。...
1. IO流:学习字节流和字符流,理解流的分类(输入流、输出流,节点流、处理流)。 2. NIO(New Input/Output):掌握缓冲区、通道、选择器等概念,理解NIO在高性能I/O处理中的优势。 七、多线程 1. 线程基础:了解...
7. **IO流**:Java的输入输出系统基于流模型,包括字节流和字符流,以及缓冲流、转换流等。理解流的方向(输入/输出)、层次(节点流/处理流)以及NIO(非阻塞I/O)框架。 8. **反射与动态代理**:反射允许在运行时...
I/O流是Java处理输入输出的关键部分,分为字节流和字符流,以及四种主要类型:输入流、输出流、节点流和过滤流。Java NIO(New IO)库提供了更高级的I/O操作,支持非阻塞I/O和选择器,提高了效率。 Java还包含大量...
- **流的层次结构**:节点流和处理流的概念,以及如何组合使用。 - **文件操作**:文件的创建、读写和删除。 9. **网络编程** - **Socket通信**:TCP和UDP的区别,如何实现客户端和服务端的交互。 - **URL和...
2. **Java.nio**:Java.nio(New Input/Output)库提供了基于通道(Channels)和缓冲区(Buffers)的I/O操作,相较于传统的Java.io流,它更高效且更适合多线程环境。Selector类允许单个线程同时监控多个通道,从而...
6. **字符串与IO流**:String类的特性,不可变性,字符串操作方法;输入输出流的分类(字节流与字符流)、缓冲流、对象序列化。 7. **函数式编程**:Java 8引入的Lambda表达式和Stream API,函数式接口,以及它们在...
第十一章“Java文件操作与异常机制”讲解了File类的用法,递归算法在目录遍历中的应用,以及Java异常的处理机制,帮助读者编写更加健壮的代码。 第十二章“IO体系结构和基础应用”扩展了对IO的理解,从基础概念讲到...