`

Java IO流分析整理

    博客分类:
  • Java
 
阅读更多

ava中的流,可以从不同的角度进行分类。

按照数据流的方向不同可以分为:输入流和输出流。

按照处理数据单位不同可以分为:字节流和字符流。

按照实现功能不同可以分为:节点流和处理流。

 

输出流:

 

 

输入流:

 

因此输入和输出都是从程序的角度来说的。

字节流:一次读入或读出是8位二进制。

字符流:一次读入或读出是16位二进制。

字节流和字符流的原理是相同的,只不过处理的单位不同而已。后缀是Stream是字节流,而后缀是ReaderWriter是字符流。

 

节点流:直接与数据源相连,读入或读出。

 

直接使用节点流,读写不方便,为了更快的读写文件,才有了处理流。

处理流:与节点流一块使用,在节点流的基础上,再套接一层,套接在节点流上的就是处理流。

 

Jdk提供的流继承了四大类:InputStream(字节输入流)OutputStream(字节输出流),Reader(字符输入流),Writer(字符输出流)。

以下是javaio中常用的流。

 

字节输入流:

字节输出流:

字符输入流:

字符输出流:

 

简单介绍其上图:

对文件进行操作:FileInputStream(字节输入流),FileOutputStream(字节输出流),FileReader(字符输入流),FileWriter(字符输出流)

对管道进行操作:PipedInputStream(字节输入流),PipedOutStream(字节输出流),PipedReader(字符输入流),PipedWriter(字符输出流)

PipedInputStream的一个实例要和PipedOutputStream的一个实例共同使用,共同完成管道的读取写入操作。主要用于线程操作。

字节/字符数组:ByteArrayInputStreamByteArrayOutputStreamCharArrayReaderCharArrayWriter是在内存中开辟了一个字节或字符数组。

Buffered缓冲流::BufferedInputStreamBufferedOutputStreamBufferedReader,BufferedWriter,是带缓冲区的处理流,缓冲区的作用的主要目的是:避免每次和硬盘打交道,提高数据访问的效率。

转化流:InputStreamReader/OutputStreamWriter,把字节转化成字符。

数据流:DataInputStreamDataOutputStream

因为平时若是我们输出一个8个字节的long类型或4个字节的float类型,那怎么办呢?可以一个字节一个字节输出,也可以把转换成字符串输出,但是这样转换费时间,若是直接输出该多好啊,因此这个数据流就解决了我们输出数据类型的困难。数据流可以直接输出float类型或long类型,提高了数据读写的效率。

打印流:printStreamprintWriter,一般是打印到控制台,可以进行控制打印的地方。

对象流:ObjectInputStreamObjectOutputStream,把封装的对象直接输出,而不是一个个在转换成字符串再输出。

序列化流:SequenceInputStream

对象序列化:把对象直接转换成二进制,写入介质中。

使用对象流需要实现Serializable接口,否则会报错。而若用transient关键字修饰成员变量,不写入该成员变量,若是引用类型的成员变量为null,值类型的成员变量为0.

分享到:
评论

相关推荐

    Java IO流分析、IO整理与IO优化.pdf

    ### Java IO流分析、IO整理与IO优化 #### 一、IO流概念解析 Java中的文件操作主要通过**流**的方式进行。所谓流,是指在Java内存中的一组有序数据序列,它允许开发者以一种线性的方式处理数据,无论是从源(如文件...

    Java-IO流基础例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar

    Java IO流是Java编程语言中一个非常重要的概念,它提供了数据传输的能力,使得程序能够读取和写入数据到各种输入/输出设备,如硬盘、内存、网络等。本资源包含的是Java-IO流的基础例题、源码及PPT教学文档,适合初学...

    JAVA核心面试知识整理.pdf

    JAVA IO/NIO:Java IO是基于流的IO模型,包括阻塞IO模型、非阻塞IO模型、多路复用IO模型、信号驱动IO模型和异步IO模型。Java NIO是基于缓冲区(Buffer)和通道(Channel)的IO模型,支持非阻塞和选择器(Selector)。 JVM...

    Java核心面试知识整理.pdf

    接下来是Java IO/NIO的内容,Java IO是指传统的输入输出流模型,基于阻塞IO模型,而NIO(New IO)则是引入了缓冲区、通道(Channel)和选择器(Selector)等概念,支持非阻塞IO模型,它允许单线程处理多个网络连接。...

    JAVA核心知识点整理.pdf

    4. Java IO/NIO:Java IO和NIO(New IO)是Java编程中用于处理输入/输出流的不同方式。文档中提到了阻塞和非阻塞IO模型、多路复用IO模型以及异步IO模型。在NIO中,还介绍了缓冲区(Buffer)、通道(Channel)和选择...

    免费超全面的Java基础类型,容器,并发,IO流,面向对象,Web编程等代码总结

    Java基础类型,容器,并发,IO流,面向对象,Web编程等代码总结。 2、分类文档 JVM虚拟机 JVM特点,结构与执行周期 JVM类加载机制 JVM运行时区数据 JVM执行引擎和垃圾回收 基础语法 理解Java中对象基础Object类 ...

    JAVA核心面试知识整理-最全.zip

    这部分通常包括Java语法、面向对象编程(OOP)概念、异常处理、集合框架(如ArrayList、LinkedList、HashMap等)和IO流。面试官可能会询问关于类、对象、封装、继承和多态的问题,或者要求你解释如何在实际场景中...

    2020年最新Java核心知识点整理.pdf

    Java的IO和NIO是处理输入/输出流的基础。IO主要是阻塞式的,而NIO提供了非阻塞式和基于选择器的IO。 - **阻塞IO模型**:直到数据准备好时才执行,否则线程挂起。 - **非阻塞IO模型**:线程不断轮询以检查数据是否...

    2020最新JAVA核心知识点整理,完整.zip

    4. **IO流**:Java的输入输出系统涉及文件操作、网络通信等,理解流的概念和分类(字节流、字符流、输入流、输出流)以及缓冲区、转换流的使用。 5. **多线程**:Java提供了丰富的多线程支持,包括Thread类、...

    Java核心知识整理.pdf

    作为Java工程师,需要掌握Java的多方面知识点,包括但不限于JVM(Java虚拟机)原理、Java内存模型、垃圾回收机制、引用类型、集合框架、输入输出流(IO/NIO)以及类加载机制等。 JVM(Java虚拟机) JVM是Java程序...

    JAVA 各类包,包括Jama0, Math3,CommonIO,Poi

    常用的JAVA,Android包库,闲的整理一下打包上传,math3主要用于线性计算,回归分析等,jama主要用于矩阵计算,Poi用于输出大量数据到Excel,再导入matlab。commonIO也是用于输入输出流

    JAVA架构知识库整理.pdf

    Java NIO是一种基于通道(Channel)和缓冲区(Buffer)的I/O操作方法,与传统的Java IO基于流的方式不同,NIO能够提供非阻塞式的高伸缩性网络。 Java的集合框架是Java API中提供的一组接口和类。常见的集合接口有...

    Java面试题以及答案整理.pdf

    使用`java.io`包中的`FileReader`、`BufferedReader`等类进行文件读取,同时维护一个计数器记录行数。 19. **程序运行结果** 题目未给出具体程序,无法分析结果。 20. **抽象类和接口的区别** 抽象类是部分实现...

    JAVA核心面试知识整理

    - IO流:字节流、字符流、缓冲流、对象流、转换流、管道流。 - 集合框架:List、Set、Map接口及其实现类,泛型,集合的遍历和操作。 - Lambda表达式、Stream API和函数式编程。 - 注解(Annotation)的使用及...

    JAVA核心知识整理.pdf

    - **多路复用IO模型**:通过一个线程来监听多个IO流,当某个流准备好读取或写入时,才触发相应的处理逻辑。 - **信号驱动IO模型**:在进程发出IO请求后就可以继续做其他事情,当数据准备好时,操作系统会发送一个...

Global site tag (gtag.js) - Google Analytics