IO_01

来源:互联网 发布:java简历工作内容 编辑:程序博客网 时间:2024/05/17 20:21

1Java文件系统管理

java.io.File用于表示文件(目录),也就是说程序员可以通过File类在程序中操作硬盘上的文件和目录。

File类只用于表示文件(目录)的信息(名称、大小等),不能对文件内容进行访问。

2File代表文件系统中对文件/目录的管理操作(增删改查,CRUD)

常用API方法:

File(String)指定文件名的构造器

long length()

long lastModified()

String getName()

String getPath()

boolean exists()

boolean dir.isFile()

boolean mkdir()

boolean mkdirs()

boolean delete();

boolean createNewFile() throw IOException

FIle[] listFile()

3回调模式和FileFilter

FileFilter类是对操作文件的过滤,相当于命令:ls|grep patten

API方法:File[] listFile(FileFilter)

listFile()方法会将dir中每个文件交给accept()方法检测,如果返回true,就作为方法的返回结果元素

增强循环(foreach循环):JDK5提供的简化版for循环

回调模式:accept()方法的调用属于回调模式

4RandomAccessFile

RandomAccessFile类是Java提供的功能丰富的文件内容访问类,它提供了众多方法来访问文件内容,既可以读取文件内容,,也可以向文件输出数据,RandomAccessFile支持"随机访问"方式,可以访问文件的任意位置。

1)Java文件模型

在硬盘上文件时byte by byte存储的,是数据的集合

2)打开方式

有两种模式"rw"读写、"r"只读

RandomAccessFile raf = new RandomAccessFile(file,"rw")

打开文件时候默认文件指针在开头 pointer = 0

3)写入方法

raf.write(int)可以将整数的"低八位"写入到文件中,同时指针自动移动到下一个位置,准备再次写入

再次写入注意,文件名的扩展名要明确规定,没有默认扩展名现象

RandomAccessFile raf = new RandomAccessFIle("Hello.java","rw");

4)读取文件

int b = raf.read() 从文件中读取一个byte(8位)填充到int的低八位,高24位为0,返回值正数0~255,如果返回-1表示读取到了文件末尾!每次读取后自动移动文件指针,准备下一次读取。

5)文件读写完成以后一定要关闭文件

Sun官方说明,如果不关闭,可能遇到一些意想不到的错误,根据具体操作平台不同会有不同,在使用过程中,切记文件读写完成后要关闭文件。

5序列化与基本类型序列化

1)将类型转换为4个byte,或将其它数据类型(如long->8 byte)的过程,即将数据转换为n个byte序列叫序列化(数据->n byte)0x7fffffff->[7f ff ff ff ]

2)反序列化,将n byte转换为一个数据的过程(n byte->数据)

3)RandomAccessFile 提供基本类型的读写方法,可以将基本类型数据序列化到文件或将文件内容反序列化为数据


原创粉丝点击