首页 > 编程语言 >Java IO详解

Java IO详解

时间:2023-03-25 19:00:52浏览次数:27  
标签:字符 Java 字节 写入 详解 IO 读取

一、IO简介

1. 概念

 Java IO (Input/Output) 是 Java 编程语言对输入和输出(I/O)进行封装的一组类和接口,Java IO 提供了输入流和输出流的抽象,可以使开发者以相同的方式读写各种不同类型的数据,如文本、图像、音频、视频等等。

 Java IO 的基本操作都是围绕着流(Stream)对象展开的,流是一个抽象的概念,它是一系列连续的字节或字符,数据从一个端点流入,从另一个端点流出。Java IO 从两个维度来区分流,即字节流和字符流。

  • 字节流(Byte Stream):以字节为单位进行数据传输,一次处理一个字节,适合于处理二进制数据,如图像、音频、视频等等。

  • 字符流(Character Stream):以字符为单位进行数据传输,一次处理一个字符,适合于处理文本数据,如字符文件、字符串等等。

Java IO 主要包括以下几个包:

  • java.io:提供了各种用于读取和写入数据的类和接口。
  • java.nio:提供了对新输入/输出 (NIO) 的支持。
  • java.nio.channels:提供了可扩展的、非阻塞 I/O 操作,包括 Selector、Channel 等。
  • java.nio.charset:提供了在字节和 Unicode 字符之间进行编码和解码的类和接口。

在 Java IO 中,常用的类和接口包括:

  • InputStream/OutputStream:用于读取和写入字节数据。
  • Reader/Writer:用于读取和写入字符数据。
  • InputStreamReader/OutputStreamWriter:将字节流转换为字符流或将字符流转换为字节流。
  • FileReader/FileWriter:用于读取和写入字符文件。
  • FileInputStream/FileOutputStream:用于读取和写入字节文件。
  • BufferedReader/BufferedWriter:带有缓存的字符流,可以提高读写效率。
  • ByteArrayInputStream/ByteArrayOutputStream:用于读取和写入内存中的字节流。
  • CharArrayReader/CharArrayWriter:用于读取和写入内存中的字符流。
  • DataInputStream/DataOutputStream:用于读写基本数据类型和字符串。
  • PrintStream/PrintWriter:用于打印各种数据类型到输出流。
    除此之外,Java IO 还提供了一些其他的类和接口,如 ObjectInputStream/ObjectOutputStream、PipedInputStream/PipedOutputStream、ZipInputStream/ZipOutputStream 等等。

总之,Java IO 提供了一组强大的类和接口,可以方便地读取和写入各种不同类型的数据。

标签:字符,Java,字节,写入,详解,IO,读取
From: https://www.cnblogs.com/arek/p/17255353.html

相关文章

  • Vue介绍与生命周期详解
    一、Vue简介 Vue是一款轻量级、高性能的JavaScript框架,用于构建用户界面,它的核心是数据双向绑定和组件化。Vue的设计灵感来源于AngularJS和React,但它更加易于上手和使用......
  • RabbitMQ快速入门与详解
    一、RabbitMQ简介1.简介 RabbitMQ是一个开源的消息代理(MessageBroker)软件,实现了高级消息队列协议(AMQP),支持多种消息传递模式,例如点对点、订阅/发布等。 RabbitMQ的核......
  • 使用 Docker 打包 Java 应用程序为镜像
    创建Dockerfile在Docker中,Dockerfile是一个文本文件,包含一系列的指令,用于定义如何构建Docker镜像。可以通过编写Dockerfile来自定义Docker镜像。对于Java应用......
  • java——spring boot集成kafka——单节点示例
    首先安装一个zk。然后再安装kafka:   执⾏以下命令创建名为“test”的topic,这个topic只有⼀个partition,并且备份因⼦也设置为1: 然后在kafka节点下,执行如下命令:......
  • 解决方案:The connection to the server ip:6443 was refused - did you specify the r
    一、概述1、k8s有时候会报错Theconnectiontotheserverip:6443wasrefused-didyouspecifytherighthostorport,本文档提供几种可能产生该报错的原因和排障思......
  • Java进阶基础知识点(包及final关键字、常量)
    一:包的概述包就是文件夹,用来管理各种不同功能的Java类,方便后期代码维护。包的命名规则:公司域名的反写+包的作用,需要全部英文小写,见名知意。例如;com.51cto.domain.student.......
  • GnuRadio-RTL-SDR实现WFM收音机
    一.RTL-SDR准备①、在PDD上购买一个HF:100K~30MhzUV:25MHz~1600MHz调频广播: 87~108MHz, WFM(或WBFM)民用对讲机:136MHz~174MHz;400MHz~470MHz,NFM 业余超短波电台:50~54MHz,144~......
  • A Survey of Diversification Techniques in Search and Recommendation
    目录概符号说明DiversityMetricsRelevance-obliviousDiversityMetricsDistance-basedMetricsConverage-basedMetricsRelevance-awareDiversityMetricsNovelty-based......
  • SpringMVC快速入门与详解
    一、SpringMVC简介1.概念 SpringMVC是一种基于Java的实现MVC设计模式的Web框架,该框架通过将Web应用程序划分为模型、视图和控制器来简化Web应用程序的开发......
  • kubernetes failed to create kubelet: misconfiguration: kubelet cgroup driver: "c
    错误原因kubernetes的文件驱动与docker不一致,导致镜像无法启动。dockerinfo可以看到驱动方式CgroupDriver:systemd。解决方案统一资源管理,一致使用systemd或......