第十讲文件与流操作 北京理工大学计算机系金旭亮8 ●●●● ●●。●● 2021/2/24 北京理工大学计算机系(共23页)
2021/2/24 北京理工大学计算机系(共23页) 1 第十讲 文件与流操作 北京理工大学计算机系 金旭亮
●●●●● ●●●● 什么是文件? ●●0 ●●● ●●●● ●用于存放大量的数据 ●当程序运行结束时其数据被永久地保存在文件 中 ●文件保存在各种辅助存贮器中 磁盘 ●光盘 ●U盘(闪存) 2021/2/24 北京理工大学计算机系(共23页)
2021/2/24 北京理工大学计算机系(共23页) 2 什么是文件? ⚫ 用于存放大量的数据 ⚫ 当程序运行结束时其数据被永久地保存在文件 中 ⚫ 文件保存在各种辅助存贮器中 ⚫ 磁盘 ⚫ 光盘 ⚫ U盘(闪存)
●●●●● ●●●● 文件的操作 ●●0 ●●● ●●●● ●Fi1e类 ●提供了文件或目录的有用信息 ●并不真正打开或存取文件 实例: FileDemo. java,简单地列出文件夹或 文件信息 更复杂的示例: File Test java,不仅列出文件 夹信息,而且可以打开文件查看内容 2021/2/24 北京理工大学计算机系(共23页)
2021/2/24 北京理工大学计算机系(共23页) 3 文件的操作 ⚫ File类 ⚫ 提供了文件或目录的有用信息 ⚫ 并不真正打开或存取文件 ⚫ 实例:FileDemo.java,简单地列出文件夹或 文件信息。 ⚫ 更复杂的示例:FileTest.java,不仅列出文件 夹信息,而且可以打开文件查看内容
●●●●● ●●●● 如何选择文件? ●●0 ●●● ●●●● ●使用 JFile chooser类 实例: ChooseFile. java 打开 查看:□我的电脑 回回BB 35软盘 舀本独醚盘(C 感共享文档 8JXL2(D: ③我的光盘(F 感DW驱动器(H 文件名 文件类型:所有文件 打开(O 撤消(C) 2021/2/24
2021/2/24 北京理工大学计算机系(共23页) 4 如何选择文件? ⚫ 使用JFileChooser类 ⚫ 实例:ChooseFile.java
●●●●● ●●●● 数据的基本单位 ●●0 Sally Black o B1 ●位→字符与字节→字段 Judy Green →记录→文件→数据库 工x1 s orange →互联网→ Randy Red Record 区分:ASC‖码与 UNICODE码 d y Field 01001010 Byte(ASCll character J) 2021/2/24 北京理工大学计算机系(共23页)
2021/2/24 北京理工大学计算机系(共23页) 5 数据的基本单位 ⚫ 位→字符与字节→字段 →记录→文件→数据库 →互联网→…… Randy Red 1 01001010 J u d y Judy Green Sally Black Tom Blue Judy Green Iris Orange File Record Field Byte (ASCII character J) Bit 区分:ASCII码与UNICODE码
●●●●● ●●●● 文件的基本类型 ●●0 ●●● ●●●● 23 45|6 顺序文件 234156 随机文件 结构化的文件 2021/2/24 北京理工大学计算机系(共23页)
2021/2/24 北京理工大学计算机系(共23页) 6 文件的基本类型
●●●●● 随机存取的文件 ●●0 ●●● ●●●● ●要求文件中的记录是定长的 ●使用 Randomaccessei1e类 0 100 200 300 0 500 byte offsets 100 100 100 100 100 100 bytes tes bytes bytes bytes 2021/2/24 北京理工大学计算机系(共23页)
2021/2/24 北京理工大学计算机系(共23页) 7 随机存取的文件 ⚫ 要求文件中的记录是定长的 ⚫ 使用RandomAccessFile类 100 bytes 100 bytes 100 bytes 100 bytes 100 bytes 100 bytes 0 100 200 300 400 500 byte offsets
●● ●●●● ●● 随机存取文件示例 ●●0 ●●● ●●●● RandomAccessFileDemo. java CN C: \PROGRA"1\XIHOXS"I\JCREAT"1\G..-ox 读取第几笔据?2 nono上 ress any key to continue 选择的记录数太大,引发 java. io EOFEXception C: C: \PROGRA 1\XINOXS 1\JCREAT 1\GE2001exe 取第几笔数据?26 java. io EOFException at java. io RandomAccess File. readChar(RandomAccess File java: 683> at RandomAccess Demo. readName(RandomAccess File Demo. java: 56> t Random File Demo. main(RandomAccess File Demo. java: 36) Press 2021/2/24 北京理工大学计算机系(共23页)
2021/2/24 北京理工大学计算机系(共23页) 8 随机存取文件示例 ⚫ RandomAccessFileDemo.java ⚫ 选择的记录数太大,引发java.io.EOFException
●●●●● ●●●● 文件的基本类型 ●●0 ●●● ●●●● 二进制文件 流式丈件 2021/2/24 北京理工大学计算机系(共23页)
2021/2/24 北京理工大学计算机系(共23页) 9 文件的基本类型
●●●●● ●●●● Java中的文件理论 ●●0 ●●● ●●●● 连串有顺序的数据系列可以看成是一个流 可以往流中读写数据 Java将文件看成是一个字节流 ●文件有一个结束标记通常是一个特定的字节,称为 EOF: 0123456 89 「… end-of-file marker 2021/2/24 北京理工大学计算机系(共23页)
2021/2/24 北京理工大学计算机系(共23页) 10 Java中的文件理论 ⚫ 一连串有顺序的数据系列可以看成是一个流。 ⚫ 可以往流中读写数据。 ⚫ Java将文件看成是一个字节流 ⚫ 文件有一个结束标记通常是一个特定的字节,称为 EOF; 0 1 2 3 4 5 6 7 8 9 ... ... n-1 end-of-file marker