版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文件与随机文件,2,文件与随机文件,文件及其操作 随机文件及其操作 对象序列化,3,文件类File,Java.io.File 文件类提供获取文件基本信息、以及对文件进行各种操作的方法。 Java将目录也看作文件。 创建File对象: public File(String pathname) public File(String parent, String child) public File(File parent, String child) 如: File myFile1=new File(“mytext.txt”); File myFile2 = new File(“c:”,”myfl
2、oder”); File myFile3 = new File(myFile2, “mytext.txt”);,4,File类的常用方法,与文件名相关的方法 String getName( ) String getPath( ) boolean renameTo(File newName) 文件属性测试方法 boolean exists( ) boolean canWrite( ) boolean canRead( ) boolean isFile( ) boolean isDirectory( ),5,File类的常用方法,创建新文件 boolean createNewFile ( ) 删除
3、文件 boolean delete( ) 目录操作方法 boolean mkdir( ),6,文件过滤,文件过滤就是在调用File对象的list()、listFiles()方法时,仅列出符合要求的文件。 Java中提供了FileFilter和FilenameFilter接口,编写实现这两个接口的类,实现其中的accept方法,可以获得文件过滤器对象。 在调用File对象的list(),listFiles()方法时,以过滤器对象为参数,即可实现文件过滤。,7,文件的访问方式,顺序存取 按照从头到尾的顺序读出或写入文件数据的方式叫做对文件的顺序存取。Java中通过I/O流进行的文件访问都是顺序存取
4、,而且对一个文件不能同时进行读和写。 随机存取 不必按照顺序,可以在文件的任意位置对文件进行读写的方式称作对文件的随机存取。,8,随机存取文件类-RandomAccessFile,构造方法 RandomAccessFile(String name, String mode) throws FileNotFoundException RandomAccessFile(File file, String mode) throws FileNotFoundException mode的取值: “r”:只读 ”rw”:读写,9,RandomAccessFile的常用方法,确定文件指针位置的相关方法;
5、返回当前文件指针位置 long getFilePointer( ) throws IOException 文件指针定位到指定位置 void seek( long pos ) throws IOException 返回文件长度 long length( ) throws IOException 从当前位置开始,将文件指针移动n个字节(n0) int skipBytes(int n) throws IOException,10,RandomAccessFile的常用方法,读取文件数据的方法: 读一个字节,指针移动一个字节 int read() throws IOException 读一个逻辑值,指
6、针移动一个字节 boolean readBoolean() throws IOException 读一个字符,指针移到下一个数据的开始 char readChar() throws IOException 读一个int数,指针移到下一个数据的开始 int readInt() throws IOException 读一个long,指针移到下一个数据的开始 long readLong() throws IOException 读一个float,指针移到下一个数据的开始 float readFloat() throws IOException 读一个double,指针移到下一个数据的开始 doubl
7、e readDouble() throws IOException 读一行数据,以字符串的形式返回。指针移到下一行数据的开始 String readLine() throws IOException /一个字节一个字符 读入一个UTF字符串,指针移到下一个数据的开始 String readUTF() throws IOException /unicode字符 UTF编码,11,RandomAccessFile的常用方法,向文件写数据的方法: 写一个字节(参数b的低八位) void write(int b) throws IOException 写一个字节数组 void write(byte b
8、) throws IOException 写一个逻辑值 void writeBoolean(booleanv) throws IOException 写一个字符 void writeChar(intv) throws IOException 写一个int数据 void writeInt(intv) throws IOException 写一个long数据 void writeLong(longv) throws IOException 写一个float数据 void writeFloat(floatv) throws IOException 写一个double数据 void writeDoub
9、le(doublev) throws IOException 写一个字符串 void writeChars(Strings) throws IOException 以UTF格式写一个字符串 void writeUTF(Stringstr) throws IOException,12,例:建立随机文件,import java.io.*; class TestRandomAccessFile public static void main(String args) throws IOException String sName; int grade; RandomAccessFile myRAFi
10、le = new RandomAccessFile(grade.dat,rw); for(int i=0;i10;i+) sName=student+i; myRAFile.writeUTF(sName); /以UTF格式写字符串 myRAFile.writeInt(i*10); /写整数 System.out.println(the File is +myRAFile.length();,13,续,myRAFile.seek(0); /回到文件头 for(int i=0;i10;i+) System.out.println(the file pointer is “ + myRAFile.g
11、etFilePointer(); sName=myRAFile.readUTF(); System.out.println(the file pointer is “ + myRAFile.getFilePointer(); grade=myRAFile.readInt(); System.out.println(sName+ +grade); myRAFile.close(); ,14,例:随机文件读取-成绩查询,import java.io.*; class TestRandomRead public static void main(String args) throws IOExcep
12、tion String sName; int grade; RandomAccessFile myRAFile = new RandomAccessFile(grade.dat,rw); System.out.print(请输入你要查询的学生编号:); String snum=new BufferedReader(new InputStreamReader(System.in).readLine(); int num=Integer.parseInt(snum.trim(); myRAFile.seek(14*(num-1); sName=myRAFile.readUTF(); /读入字符串:
13、姓名 grade=myRAFile.readInt(); /读入整数:成绩 System.out.println(sName+的成绩是+grade); myRAFile.close(); ,15,对象序列化(对象输入/输出流),对象序列化是指把对象变成字节序列以便保存到外存或在网络上传输。实现了java.io.Serializable接口的类其对象可以被序列化,并且可以用对象输出流ObjectOutputStream输出,用对象输入流ObjectInputStream读入. 只有对象的数据被保存,方法与构造函数不被保存。,16,输出对象,import java.io.*; import jav
14、a.util.Date; public class SerializeDate SerializeDate( ) Date d = new Date( ); /d为可序列化的对象 try FileOutputStream f = new FileOutputStream(date.ser); ObjectOutputStream s= new ObjectOutputStream(f); s.writeObject(d); /将对象d写到文件date.ser中 f.close( ); catch( IOException e) e.printStackTrace( ); public static void main(String args) SerializeDate b = new SerializeDate(); ,17,输入对象,import java.io.*; import java.util.Date; public class UnSerializeDate UnSerializeDate() Date d = null ; try FileInputStream f = new FileInputStream(date.ser
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026青岛东鼎产业发展集团有限公司招聘考试参考题库及答案解析
- 品质检验漏失奖惩制度
- 外包员工奖惩制度规定
- 五级班级管理奖惩制度
- 家庭积分奖惩制度
- 单位扶贫帮扶奖惩制度
- 员工食堂后厨奖惩制度
- 全员责任制考核奖惩制度
- 小学作业辅导奖惩制度
- 临床本科教学奖惩制度
- 城市供水管网巡检与维修操作手册(标准版)
- 2026年荆门市急需紧缺人才引进1502人笔试备考题库及答案解析
- 2026年春季北师大版小学数学二年级下册教学计划(含进度表)
- 工艺报警考核制度
- 2025年泰州职业技术学院单招职业倾向性考试题库带答案解析
- (新教材)2026年春期人教版三年级下册数学教学计划+教学进度表
- 火电厂热控培训课件内容
- 涉密机房培训
- 沥青路面施工监理实施细则
- (正式版)DB61∕T 2103-2025 《砖瓦用页岩矿资源储量核实技术规范》
- 2026年长沙职业技术学院单招职业技能考试模拟测试卷及答案1套
评论
0/150
提交评论