java读写二进制文件 移动指针 seek,《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.    先挖坑。。。

posted on 2016-10-03 10:44 zYx.Tom 阅读(116) 评论(0)  编辑  收藏

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值