第11章 读文件 433
11.1 文件读取操作 433
11.1.1 使用输入流读取文件 434
11.1.2 使用缓冲读取器读取
文件 437
11.2 使用通道读取文件 439
11.2.1 读取文本文件 441
11.2.2 从缓冲区获取数据 442
11.2.3 读取二进制数据 444
11.2.4 读取混合数据 446
11.2.5 压缩缓冲区 449
11.3 复制文件 452
11.4 随机访问文件 455
11.5 内存映射文件 460
11.5.1 锁住文件 463
11.5.2 锁住文件的特定部分 465
11.5.3 实用的文件加锁考量 465
11.6 小结 468
第12章 序列化对象 471
12.1 在文件中存储对象 471
12.2 将对象写入到文件中 472
12.2.1 将基本类型数据写入到对象流中 474
12.2.2 实现Serializable接口 475
12.3 从文件读取对象 478
12.3.1 判定反序列化对象所属的类 481
12.3.2 使用对象序列化 482
12.3.3 手动序列化类 485
12.3.4 序列化问题和困难 486
12.4 小结 488
第13章 泛型 491
13.1 什么是泛型 491
13.2 定义泛型类 492
13.2.1 实现泛型类 493
13.2.2 实例化泛型类 495
13.2.3 泛型类实例在运行时的类型 500
13.2.4 泛型类实例之间的关系 502
13.2.5 多个类型参数 502
13.2.6 类型参数的作用域 503
13.2.7 泛型类的静态域 504
13.2.8 类型参数的边界 504
13.3 泛型类和泛型接口 508
13.3.1 实现针对容器类的基于集合的循环 508
13.3.2 实现迭代器的功能 510
13.3.3 二叉树的参数化类型 512
13.4 原生类型的变量 523
13.5 使用通配符类型参数 524
13.5.1 针对通配符的约束 526
13.5.2 深入Class类 529
13.6 数组与参数化类型 530
13.7 参数化方法 533
13.8 参数化类型及继承 539
13.9 总结 540