首页 > 编程语言 >JavaIO流

JavaIO流

时间:2024-11-15 10:45:04浏览次数:3  
标签:字符 Java 字节 输出 JavaIO 序列化 输入

Java 的 I/O(输入/输出)流是用于处理数据输入和输出的强大机制,是 Java 标准库中的一个重要部分。下面是一些关键知识点和总结:

1. 基本概念
‌流(Stream)‌:流是一组有序的数据序列,从数据源流向数据目的地。Java 中的 I/O 流主要用于处理文件、网络、内存等数据源和数据目的地之间的数据传输。
‌输入流(Input Stream)‌:用于从数据源读取数据。
‌输出流(Output Stream)‌:用于向数据目的地写入数据。
2. 流的分类

‌根据操作的数据单位‌:

‌字节流‌:以字节为单位进行读写。常用的字节流类有 FileInputStream 和 FileOutputStream,以及它们的包装类 BufferedInputStream 和 BufferedOutputStream。
‌字符流‌:以字符为单位进行读写。常用的字符流类有 FileReader 和 FileWriter,以及它们的包装类 BufferedReader 和 BufferedWriter。

‌根据功能‌:

‌输入流‌:InputStream(字节输入流)和 Reader(字符输入流)是所有输入流的基类。
‌输出流‌:OutputStream(字节输出流)和 Writer(字符输出流)是所有输出流的基类。
3. 常用的 I/O 类和接口

‌字节流‌:

FileInputStream:从文件中读取字节流。
FileOutputStream:向文件中写入字节流。
BufferedInputStream:缓冲字节输入流,提高读取效率。
BufferedOutputStream:缓冲字节输出流,提高写入效率。

‌字符流‌:

FileReader:从文件中读取字符流。
FileWriter:向文件中写入字符流。
BufferedReader:缓冲字符输入流,可以按行读取。
BufferedWriter:缓冲字符输出流,可以按行写入。

‌转换流‌:

InputStreamReader:将字节输入流转换为字符输入流。
OutputStreamWriter:将字符输出流转换为字节输出流。
4. 装饰者模式

Java 的 I/O 流大量使用了装饰者模式,使得可以通过组合不同的流来实现更复杂的功能。例如:

通过 BufferedInputStream 装饰 FileInputStream,可以提高文件读取的效率。
通过 DataInputStream 装饰 InputStream,可以方便地读取基本数据类型。
5. 文件操作
‌File 类‌:java.io.File 类表示文件或目录,可以用来创建、删除、重命名文件和目录,以及获取文件的各种属性(如长度、最后修改时间等)。
‌随机访问文件‌:RandomAccessFile 类支持对文件进行随机访问(即可以在文件的任意位置读取或写入数据)。
6. 序列化与反序列化
‌ObjectInputStream‌ 和 ‌ObjectOutputStream‌:用于对象的序列化和反序列化,可以将对象写入文件或网络,以及从文件或网络中读取对象。
一个类要实现序列化,必须实现 Serializable 接口(标记接口,不需要实现任何方法)。
7. 管道流
‌PipedInputStream‌ 和 ‌PipedOutputStream‌:用于线程之间的数据传输,一个线程的输出流可以连接到另一个线程的输入流。
8. 总结
Java 的 I/O 流提供了丰富的类和方法,可以方便地处理不同类型的数据源和数据目的地。
字节流和字符流是两种基本的流类型,根据需求选择合适的流类型可以提高程序效率和可读性。
装饰者模式使得可以通过组合不同的流来实现复杂的功能。
文件操作、对象的序列化和反序列化、管道流等是 Java I/O 流的高级特性,可以满足更复杂的需求。

理解并掌握 Java 的 I/O 流机制,对于开发高效、可维护的 Java 应用程序至关重要。

标签:字符,Java,字节,输出,JavaIO,序列化,输入
From: https://blog.csdn.net/2301_77006130/article/details/143789147

相关文章

  • <转>javaIO流之缓冲流
     简介Java的缓冲流是对字节流和字符流的一种封装,通过在内存中开辟缓冲区来提高I/O操作的效率。Java通过BufferedInputStream和BufferedOutputStream来实现字节流的缓冲,通过BufferedReader和BufferedWriter来实现字符流的缓冲。缓冲流的工作原理是将数据先写入缓冲......
  • JavaIO 文件的读取,写入,复制,压缩,解压等...相关操作,持续更新
    1.文本文件的读取文本的读取,返回值是一个list,如果需要返回一整个string在while循环中使用StringBuilder.append 即可/***逐行读取文本**@paramfilePath文件路径*@returnList<String>*/publicstaticList<String>readTxtFile1......
  • [ApacheCommon组件使用-IO]关于JavaIO,相当输入的一个工具就是ApacheCommon-IO
    1.首先,如果你使用的是maven或者gradle建立的项目,maven只需要<!--https://mvnrepository.com/artifact/commons-io/commons-io--><dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId>......
  • JavaIO流
    JavaIO流基础概念数据流:一组有序,有起点和终点的字节的数据序列。包括输入流和输出流输入流:程序从输入流读取数据源。数据源包括外界(键盘、文件、网络…),即是将数据源读入到程序的通信通道输出流:程序向输出流写入数据。将程序中的数据输出到外界(显示器、打......
  • JavaIO中的缓冲流有什么作用如何使用缓冲流进行IO操作
     缓冲流在JavaIO中扮演着非常重要的角色,它可以提高IO操作的效率,减少访问硬盘的次数。在本文中,我们将探讨JavaIO中的缓冲流的作用,并演示如何使用缓冲流进行IO操作。首先,让我们了解一下什么是缓冲流。缓冲流是一种高级流,它通过在内存中创建缓冲区来提高IO的效率。当我们使用缓冲......
  • javaIO之随机读写
    javaIO包提供了很多可以读写文件的类,但是如果想在文件的指定位置读写,就需要使用RandomAccessFilepublicclassApp{publicstaticvoidmain(String[]args)throwsIOException{{Strings1="ggg\n";Strings2="ggg,hhh\n";......
  • JavaIO流:主要知识点
    JavaIO流:主要知识点File类介绍:java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关。File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。想要在Java程序中表示一个真实存在的文件或目录,那么必......
  • JavaIO中直接内存的使用
    注:本文转自:https://www.toutiao.com/article/7198357822390977080/?log_from=ed0bb42919105_1678896533085本次分享主要由io与nio读取文件速度差异的情况,去了解nio为什么......
  • JavaIO流详解
    JavaIO流详解I(Input:输入)/O(Output:输出)流,是java中用来传输数据的方式流(stream)的概念流是一种抽象概念,它代表了数据的无结构化传递流是一个无结构化的数据组......
  • javaIO流实验1-8小题
    1.IO流,什么是IO?I:InputO:Output通过IO可以完成硬盘文件的读和写。2.IO流的分类?有多种分类方式:1)一种方式是按照流的方向进行分类:以内存作为参照物,往内存中去,叫做输......