《Java大学教程》—第20章 文件处理
记录():一个单独的数据实例。
域():一个属性。
20.3 输入和输出设备:P484
输入过程和输出过程。
操作系统负责建立三个流(stream):标准输入流(System.in)、标准输出流(System.out)、标准错误流(System.error)。
输入类:
* InputStream:提供了许多处理基本输入的底层方法,主要处理字节序列。
* InputStreamReader:提供了更高层的处理方法,主要处理字符序列。
* BufferedReader:主要处理字符串形式的输入数据。
20.4 文件操作:P485
读(reading):输入过程是将数据从文件传送到存储器。
写(writing):输出过程是将数据从存储器传送到文件。
操作单位:字节、字符、字符串、文本行、基本数据类型、对象。
20.4.1 编码:文本、二进制、对象。P486
20.4.2 访问:顺序访问、随机访问。P486
20.5 读写文本文件:P491
FileWriter:文件输出,两种模式(输出模式、添加模式),底层方法。
PrintWriter:像输出到屏幕上一样,可以设置输出的格式,高层方法。
注:在将信息写入文件后,最重要的一步操作是关闭文件。
关闭文件的两个目的:保证将一个特殊的字符--文件结束符--写入文件的末尾。关闭文件意味着程序不能再访问该文件,防止出现错误的写入操作。
FileReader:以只读方式打开,底层方法。
BufferedReader:依次读取每个记录的每个域,高层方法。
20.6 读写二进制文件:P495
底层方法:FileOutputStream、FileInputStream
高层方法:DataOutputStream、DataInputStream
20.7 以字符为单位读取文本文件:P498
BufferedReader.read():从文件中读取一个字符。
20.8 对象序列化(Serialization):P499
将一个对象转化为适合磁盘存储的数据流的过程称为序列化(serialization)。
如果需要将对象序列化必须实现Serializable接口,这个接口不含有任何方法,被称为marker。
它的作用仅是提醒使用该类的用户:即该类的任何对象都可以以整个对象为单位读出或写入。
20.9 随机访问文件:P502
RandomAccessFile.seek():从开始读或写操作前将文件指针移动的字节数。
注:打开文件的模式(只读模式、读写模式)。
自测题:
1. 输入输出的原理:P484
输入过程是将数据从某个外部设备传送到内存;
输出过程是将数据从主存传送到某个外部设备。
为了实现输入和输出操作,必须在设备和计算机存储器之间建立一个通信管道。这样的管道称为流(stream)。
2. 输入流和输出流:P484
操作系统负责建立一个标准输入流(standard input stream)和标准输出流(standard output stream),以及一个标准错误流(stand error stream)用于显示错误信息。
3. 文本编码、二进制编码和对象编码的区别:P486
文本编码格式:存储在磁盘上的数据以字符的形式被外部系统使用--通常是ASCII码。
二进制编码格式:数据的存储格式与程序使用的数据的内部表示相同,即按照数据在存储器中的存储格式。
对象编码格式:数据是按照一个具体的完整的对象的方式来存取操作的。
4. 顺序访问文件和随机访问文件的区别:P486
顺序访问文件:依次读出(写入)每个数据元素。操作系统提供文件指针(file pointer),表示存储器中的一个位置,用于记录读写文件中到达的位置。
随机访问文件:直接到达需要的记录位置。
5. Serializable接口的作用:P499
将一个对象转化为适合磁盘存储的数据流的过程称为序列化(serialization)。
如果需要将对象序列化必须实现Serializable接口,这个接口不含有任何方法,被称为marker。
它的作用仅是提醒使用该类的用户:即该类的任何对象都可以以整个对象为单位读出或写入。
6. 对象占用的字节数=4+2+(20+2)=28
private int x;
private char c;
private String s;
编程练习:代码附件
1. BinaryFileTester.java
2. FileHandler.java RunFileHandler.java
3. RandomFileTester.java
4. ObjectFileTester.java
5. 先挖坑。。。
《Java大学教程》—第20章 文件处理的更多相关文章
- 正在学习的Java大学教程
推荐本书<Java大学教程> 看的人比较少,我也是多年不看书了,基于教程一般选国外的方法,从图书馆选了本书. 看了一半,感觉书的内容比较认真,对于基本的Java知识都算介绍全了,而且全书是 ...
- 《Java大学教程》—第23章 Java网络编程
本章主要关注的是Java的几个应用网络编程的场景,对于网络编程没有太多深入介绍,而Java本来也没有多少针对网络编程的特性.虽然Java有个Applet的概念,但是真用这个的开发的场景其实不多. 23 ...
- 《Java大学教程》—第24章 Java的背景
本章主要介绍的是Java的背景知识,通过了解历史知道Java与其他语言的区别,以便更好选择在什么场景下使用Java. 24.2 语言的尺寸Java语言短小.紧凑,以C++为基础,放弃了一些特定的 ...
- 《Java大学教程》—第19章 改进用户界面
用户与程序交互的媒介称为用户界面(user interface)或人机界面(human-computer interface). 19.2 Border接口8个实现Border接口的标准边框类: ...
- 《Java大学教程》—第18章 高级图形编程
自测题:1. 在图形应用程序中为用户提供选择的多种方式:P433下拉菜单(pull-down menu).弹出式菜单(pop-up menu).对话框窗口(dialogue window).单选 ...
- 《Java大学教程》—第16章 二维数组
多维(Multi-dimensional)数组维数由索引个数决定.常用的数组:一维(one-dimensional)数组.二维(two-dimensional)数组 16.2 创建二维数组索引从 ...
- 《Java大学教程》—第14章 抽象、继承和接口
自测题:1. 解释抽象和抽象数据类型的概念.P333抽象的概念是仅仅关注对象可以完成什么工作,而不必担心如何完成工作的细节.类模板通常被称为抽象数据类型.因为这类数据暴露给用户的所有信息仅仅是方 ...
- 《Java大学教程》—第12章 案例研究--第2部分
本章就是上一章的延续,主要是用GUI实现了控制界面. 编程练习:代码附件Hostel.java1. 正确运行2. Runhostel.java3. searchButton
- 《Java大学教程》—第11章 案例研究--第1部分
自测题:1. 图11-1的UML设计中各个类之间的关系.Hostel与TenantList是关联关系:TenantList和PaymentList与ObjectList是泛化关系.TenantL ...
随机推荐
- C#正则表达式_简单梳理_Emoji表情字符处理
A-最近一直有接触到正则表达式,现对其做简单梳理: private const RegexOptions OPTIONS = RegexOptions.IgnoreCase | RegexOption ...
- 一个简单的Code First建立
1]从VS中建立一个mvc程序 记得添加NuGet包 然后在web.config中添加链接数据库的语句 <connectionStrings> <add name="Ent ...
- EntityFramework(1)基础概念与Database First
基本概念 EntityFramework是微软推出的一款ORM工具,关于ORM的概念请参考博客https://www.cnblogs.com/huanhang/p/6054908.html.这篇文章对 ...
- [android] 获取系统的联系人信息
内容提供是实质上是个接口,后门,他给别人提供数据,系统联系人是个比较复杂的内容通过者. 找到/data/data/com.android.providers.contacts/contacts2.db ...
- 【Java每日一题】20170327
20170324问题解析请点击今日问题下方的“[Java每日一题]20170327”查看(问题解析在公众号首发,公众号ID:weknow619) package Mar2017; public cla ...
- dubbo+zookeeper+springBoot框架整合与dubbo泛型调用演示
dubbo + zookeeper + spring Boot框架整合与dubbo泛型调用演示 By:客 授客 QQ:1033553122 欢迎加入全国软件测试交流 QQ 群:7156436 ...
- Mac超快速搭建Nginx、PHP、PHPStorm、XDebug环境
一.安装自己需要的版本php 以php7.1为例,执行:curl -s https://php-osx.liip.ch/install.sh | bash -s 7.1 (去这个链接下找自己想要下载的 ...
- Linux的安装以及部署一
下载网址: Vmware: http://www.wsf1234.com/vmware- workstation-pro-v14-0-0/ Centos: http://mirrors.163.com ...
- PHP 无限极分类下拉列表实现
1. 递归实现下拉列表 /** * @param 递归 实现下拉列表 分类 */ include('db.inc.php'); function getList($pid = 0,&$resu ...
- php生成xml数据
1.php生成xml数据一般有2种方式, 一个是组装字符串,另一个就是使用php内置的系统类 2.使用php内置类生成xml数据 3.拼装字符串生成xml数据 public function stat ...