《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.1 输入/输出流

2.1 输入/输出流

在Java API中,可以从其中读入一个字节序列的对象称做输入流,而可以向其中写入一个字节序列的对象称做输出流。这些字节序列的来源地和目的地可以是文件,而且通常都是文件,但是也可以是网络连接,甚至是内存块。抽象类InputStream和OutputStream构成了输入/输出(I/O)类层次结构的基础。
注意:这些输入/输出流与在前一章中看到的流没有任何关系。为了清楚起见,只要是讨论用于输入和输出的流,我们都将使用术语输入流、输出流或输入/输出流。
因为面向字节的流不便于处理以Unicode形式存储的信息(回忆一下,Unicode中每个字符都使用了多个字节来表示),所以从抽象类Reader和Writer中继承出来了一个专门用于处理Unicode字符的单独的类层次结构。这些类拥有的读入和写出操作都是基于两字节的Char值的(即,Unicode码元),而不是基于byte值的。

时间: 2024-11-02 02:49:01

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.1 输入/输出流的相关文章

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一导读

前 言 致读者 本书是按照Java SE 8完全更新后的<Java核心技术 卷Ⅱ 高级特性(原书第10版)>.卷Ⅰ主要介绍了Java语言的一些关键特性:而本卷主要介绍编程人员进行专业软件开发时需要了解的高级主题.因此,与本书卷Ⅰ和之前的版本一样,我们仍将本书定位于用Java技术进行实际项目开发的编程人员. 编写任何一本书籍都难免会有一些错误或不准确的地方.我们非常乐意听到读者的意见.当然,我们更希望对本书问题的报告只听到一次.为此,我们创建了一个FAQ.bug修正以及应急方案的网站http:/

Java核心技术 卷Ⅰ 基础知识(原书第10版)

Java核心技术系列 Java核心技术 卷Ⅰ 基础知识 (原书第10版) Core Java Volume I-Fundamentals (10th Edition) [美] 凯S.霍斯特曼(Cay S. Horstmann) 著 周立新 陈 波 叶乃文 邝劲筠 杜永萍 译 图书在版编目(CIP)数据 Java核心技术 卷Ⅰ 基础知识(原书第10版) / (美)凯S. 霍斯特曼(Cay S. Horstmann)著:周立新等译. -北京:机械工业出版社,2016.8 (Java核心技术系列) 书

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.1.2 完整的流家族

2.1.2 完整的流家族 与C语言只有单一类型FILE*包打天下不同,Java拥有一个流家族,包含各种输入/输出流类型,其数量超过60个!请参见图2-1和图2-2. 让我们把输入/输出流家族中的成员按照它们的使用方法来进行划分,这样就形成了处理字节和字符的两个单独的层次结构.正如所见,InputStream和OutputStream类可以读写单个字节或字节数组,这些类构成了图2-1所示的层次结构的基础.要想读写字符串和数字,就需要功能更强大的子类,例如,DataInputStream和DataO

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一第3章 XML

第3章 XML ▲ XML概述 ▲ 使用命名空间 ▲ 解析XML文档 ▲ 流机制解析器 ▲ 验证XML文档 ▲ 生成XML文档 ▲ 使用XPath来定位信息 ▲ XSL转换 Don Box等人在其合著的<Essential XML>(Addison-Wesley出版社2000年出版)的前言中半开玩笑地说道:"可扩展标记语言(Extensible Markup Language,XML)已经取代了Java.设计模式.对象技术,成为软件行业解决世界饥荒的方案."确实,正如你将在

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.4 对象输入/输出流与序列化

2.4 对象输入/输出流与序列化 当你需要存储相同类型的数据时,使用固定长度的记录格式是一个不错的选择.但是,在面向对象程序中创建的对象很少全部都具有相同的类型.例如,你可能有一个称为staff的数组,它名义上是一个Employee记录数组,但是实际上却包含诸如Manager这样的子类实例. 我们当然可以自己设计出一种数据格式来存储这种多态集合,但是幸运的是,我们并不需要这么做.Java语言支持一种称为对象序列化(object serialization)的非常通用的机制,它可以将任何对象写出到

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.3.2 随机访问文件

2.3.2 随机访问文件 RandomAccessFile类可以在文件中的任何位置查找或写入数据.磁盘文件都是随机访问的,但是与网络套接字通信的输入/输出流却不是.你可以打开一个随机访问文件,只用于读入或者同时用于读写,你可以通过使用字符串"r"(用于读入访问)或"rw"(用于读入/写出访问)作为构造器的第二个参数来指定这个选项. 当你将已有文件作为RandomAccessFile打开时,这个文件并不会被删除. 随机访问文件有一个表示下一个将被读入或写出的字节所处位

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.1.3 组合输入/输出流过滤器

2.1.3 组合输入/输出流过滤器 FileInputStream和FileOutputStream可以提供附着在一个磁盘文件上的输入流和输出流,而你只需向其构造器提供文件名或文件的完整路径名.例如: 这行代码可以查看在用户目录下名为"employee.dat"的文件. 提示:所有在java.io中的类都将相对路径名解释为以用户工作目录开始,你可以通过调用System.getProperty("user.dir")来获得这个信息. 警告:由于反斜杠字符在Java字符

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.2.1 如何写出文本输出

2.2.1 如何写出文本输出 对于文本输出,可以使用PrintWriter.这个类拥有以文本格式打印字符串和数字的方法,它还有一个将PrintWriter链接到FileWriter的便捷方法,下面的语句: 等同于: 为了输出到打印写出器,需要使用与使用System.out时相同的print.println和printf方法.你可以用这些方法来打印数字(int.short.long.f?loat.double).字符.boolean值.字符串和对象. 例如,考虑下面的代码: 它将把下面的字符: 输

《Java核心技术 卷Ⅱ 高级特性(原书第10版)》一2.5 操作文件

2.5 操作文件 你已经学习了如何从文件中读写数据,然而文件管理的内涵远远比读写要广.Path和Files类封装了在用户机器上处理文件系统所需的所有功能.例如,Files类可以用来移除或重命名文件,或者查询文件最后被修改的时间.换句话说,输入/输出流类关心的是文件的内容,而我们在此处要讨论的类关心的是在磁盘上如何存储文件. Path接口和Files类是在Java SE 7中新添加进来的,它们用起来比自JDK 1.0以来就一直使用的File类要方便得多.我们认为这两个类会在Java程序员中流行起来