Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
My wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Java IO流最全详解 javaio流-CSDN博客
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
<br><br><br>以流的方式进行输入输出的操作就是IO(Input Output)流。 流是一个抽象的概念,它是一串连续动态的数据集合,可以将流理解为水管,而数据就是水,水通过水管从一端流到另一端。 Java IO包对于字节流和字符流的命名都很规范,类名中包含Stream的都是字节流,不包含Stream的都是字符流。 它们可以通过字节流或字符流进行操作,但主要关注的是如何对文件进行读写操作。 Java IO中提供了ObjecInputStream类实现对象的序列化。 处理流:不直接连接到数据源或目的地,而是为了提高节点流的效率,对节点流进行处理的流,主要指缓冲流。 一个程序总是离不开数据的输入(Input)输出(IO),而Java IO流就是用于程序从外部读取数据,以及向外部写出数据的java处理包,本文详细讲解Java IO包中常用的IO流,通过本文的知识,可以使得你在开发中随心所欲的高效使用IO流。<br>在 Java 编程中,熟练掌握这些流的使用,不仅能提升开发效率,还能使得代码更加简洁和易于维护。 通过现代的 Stream API,我们能够以更声明式和函数式的方式处理数据,这为开发者提供了更高效的开发体验。 深度解析MCP实战开发、AI大模型应用架构与大数据计算原理性能亮点,结合大数据洞察,揭示其在海量数据处理中的优势。 辅以金融、医疗等多领域应用案例,助你掌握技术精髓,把握行业趋势。 上面所介绍的FileInputStream及FileOutputStream都是一个字节一个字节的读取或者写出数据,那么如果我们每次读取多个字节,同时将多个字节写出,自然比一个一个字节读写的效率高。 再次划重点:这个Stream和List也不一样,List存储的每个元素都是已经存储在内存中的某个Java对象,而Stream输出的元素可能并没有预先存储在内存中,而是实时计算出来的。<br>[https://morbihanpaddletrophy.fr/ best anal porn site] 惰性计算的特点是:一个Stream转换为另一个Stream时,实际上只存储了转换规则,并没有任何计算发生。 希望这篇文章能为您提供清晰的 Java 流的使用指南,帮助您深入理解流的强大功能,并在日常开发中熟练应用。 IO 流是 Java 中处理数据流动的基本方式,而流的类别根据数据传输的单位不同而分为字节流和字符流。 本文将详细介绍 Java 流的各种类型,包括传统的 IO 流、文件流、以及功能更强大的 Stream API,并通过丰富的代码示例让你深入理解这些流的使用。 我们先不考虑createNaturalStream()这个方法是如何实现的,我们看看如何使用这个Stream。 Stream的另一个特点是,一个Stream可以轻易地转换为另一个Stream,而不是修改原Stream本身。<br>上面几种流读取内容,都是从第一个字节开始逐个往后读取,直至结束,而RandomAccessFile可以指定开始查找的字节位置,如对一个文件采用随机访问流进行读取示例代码如代码8所示。 Java 8 引入了全新的 Stream API,它使得处理集合数据、数组、I/O 操作变得更加简洁和高效。 Stream API 提供了非常强大的功能,可以通过声明式的方式对数据进行过滤、排序、映射等处理。 Io包中的类可分为两种:字节流(Byte Stream)和字符流(Character Stream) 字节流是最底层的,因而可以处理任何类型的文件。 我们总结一下Stream的特点:它可以"存储"有限个或无限个元素。<br>这里的存储打了个引号,是因为元素有可能已经全部存储在内存中,也有可能是根据需要实时计算出来的。 ByteArrayOutputStream将读取的数据写入到字节数组输出流中,示例代码如代码7所示。 这就好比从果园搬100斤的苹果回家,如果你每次拿一个回家,那肯定要很久,而如果你准备一个可以装20斤苹果的麻袋,每次都装满一麻袋带回家,拿5趟就拿完了。 这里的麻袋就是缓冲区,每次将多个字节装入缓冲区,然后一次性从缓冲区中写出多个字节。<br>上面是手动设置的缓冲区大小,对于较小的文件而言,我们明明可以一次性搞定,就没必要分多次,因此将缓冲区的大小设置为文件内容的实际大小即可,为满足这一需求,FileInputStream对象提供了一个估算文件字节个数的方法available,通过该方法获取文件字节个数,然后将其设置为缓冲区大小,即可实现一次性读写文件内容,最大的提高文件读写效率。 很明显,缓冲区的空间来自内存,缓冲区越大,那么占用的空间越大,因此,一次性读写数据只适用于较小的数据,如果一次读写较大的数据会占用过多的内存,导致计算机崩溃,或者性能降低。 有时候我们能够方便的获取字节流对象,但是我们需要将字节流转为字符流,这就需要Java IO提供的转换流了,它能将字节流转换为字符流。 与1.2 基于缓冲区的文件字节读写流思想一致,文件字符流通常是逐个字符读写内容,效率较低,我们可以通过开辟一块空间(数组)每次将读写的数据装满该空间,达到一次读取或者写出多个字符的效果,进而提高读写效率。 在 Java 编程中,流(Streams)是非常重要的概念,涵盖了文件读取、数据处理、以及 IO 操作等多种应用场景。 Java 的流操作通过不同类型的流 API 进行管理,分为传统的 IO 流和较新的 Stream API。 无论是面向字节的 IO 流,还是基于对象的 Stream API,它们都为开发者提供了强大的数据操作能力。<br><br>
Summary:
Please note that all contributions to My wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
My wiki:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Java IO流最全详解 javaio流-CSDN博客
Add topic