I/O流
I/O流表示输入源或输出目标,流可以表示许多不同类型的源和目标,包括磁盘文件、设备、其他程序和内存数组。
流支持许多不同类型的数据,包括简单字节、原始数据类型、本地化字符和对象,有些流只是传递数据,其他人以有用的方式操纵和转换数据。
无论它们如何在内部工作,所有流都为使用它们的程序提供相同的简单模型:流是一系列数据,程序使用输入流从源读取数据,一次一个条目:
程序使用输出流将数据写入目标,一次一个条目:
在本课程中,我们将看到可以处理各种数据的流,从原始值到高级对象。
上图所示的数据源和数据目的地可以是保存、生成或使用数据的任何内容,显然这包括磁盘文件,但源或目标也可以是另一个程序、外围设备,网络socket或数组。
在下一节中,我们将使用最基本的流(字节流)来演示流I/O的常见操作,对于示例输入,我们将使用示例文件xanadu.txt,其中包含以下内容:
In Xanadu did Kubla Khan A stately pleasure-dome decree: Where Alph, the sacred river, ran Through caverns measureless to man Down to a sunless sea.下一篇:字节流
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/72946.html
字符流 Java平台使用Unicode约定存储字符值,字符流I/O自动将此内部格式与本地字符集进行转换,在Western语言环境中,本地字符集通常是ASCII的8位超集。 对于大多数应用程序,具有字符流的I/O并不比具有字节流的I/O复杂,使用流类完成的输入和输出会自动转换为本地字符集和从本地字符集转换,使用字符流代替字节流的程序会自动适应本地字符集并为国际化做了准备 — 所有这些都无需程序员的额...
命令行I/O 程序通常从命令行运行,并在命令行环境中与用户交互,Java平台以两种方式支持这种交互:通过标准流和控制台。 标准流 标准流是许多操作系统的一个特性,默认情况下,它们从键盘读取输入并将输出写入显示器,它们还支持文件和程序之间的I/O,但该功能由命令行解释器控制,而不是程序。 Java平台支持三种标准流:标准输入,可通过System.in访问;标准输出,可通过System.out访问;和...
字节流 程序使用字节流来执行8位字节的输入和输出,所有的字节流类都是从InputStream和OutputStream派生出来的。 有许多字节流类,为了演示字节流的工作原理,我们将重点关注文件I/O字节流,FileInputStream和FileOutputStream,其他类型的字节流以大致相同的方式使用,它们的不同之处主要在于它们的构造方式。 使用字节流 我们将通过检查名为CopyBytes的...
Java™ 教程 Java教程是为JDK 8编写的,本页面中描述的示例和实践没有利用在后续版本中引入的改进。 Java教程是希望使用Java编程语言创建应用程序的程序员的实用指南,其中包括数百个完整的工作示例和数十个课程,相关课程组被组织成教程。 覆盖基础知识的路径 这些教程以书籍的形式提供,如Java教程,第六版,前往Amazon.com购买。 入门 介绍Java技术和安装Java开发软件并使用...
缓冲流 到目前为止,我们看到的大多数示例都使用无缓冲的I/O,这意味着每个读取或写入请求都由底层操作系统直接处理,这可以使程序效率低得多,因为每个这样的请求通常触发磁盘访问、网络活动或一些相对昂贵的其他操作。 为了减少这种开销,Java平台实现了缓冲的I/O流,缓冲输入流从称为缓冲区的内存区读取数据,仅当缓冲区为空时才调用原生输入API,类似地,缓冲输出流将数据写入缓冲区,并且仅在缓冲区已满时才调...
阅读 3664·2021-08-10 09:42
阅读 547·2019-08-30 15:55
阅读 851·2019-08-30 15:54
阅读 3042·2019-08-30 13:45
阅读 528·2019-08-29 16:23
阅读 1959·2019-08-29 16:23
阅读 960·2019-08-29 15:18
阅读 2237·2019-08-29 12:57