corejava day09 - File类和RandomAccessFile类
2011/08/03
=======================================
1.文件的访问
1)File类
a.java.io.File类代表文 件系统中对文件/目录
的管理操作,但不能对文件的内容进行访问
b.File类的常用API
File(String) - 构造方法,
通过给定的路径创建File对象
long length() - 返回文件的长度,以字节为单位
long lastModified() - 返回文件或目录
最后一次修改的时间
String getName () - 返回文件或目录的名 称
String getPath() - 返回文件或目录的路径
String getCanonicalPath() -
返回文件或目录的规范路径名字符串
boolean exists() - 判断文件或目录自否存在
boolean isFile() - 是否为文件
boolean isDirectory() - 是否为目录
boolean mkdir() - 创建目录
boolean mkdirs() - 创建目录,包括必须但不存在的父目录
boolean delete() - 删除文件或目录
boolean createNewFile() throw IOException - 创建新的文件,
如果指定的文件不存在并成功地创建,则返回 true;
如果指定的文件已经存在,则返回 false
File[] listFile() - 返回目录的文件
File[] listFile(FileFilter) -
返回目录的文件
FileFilter接口:用于抽象路径名的过滤器
方法:public boolean accept(File pathname)
2)文件目录的访问及文件的搜索
课堂练习:目录的递归显示
3)RandomAccessFile类
a.java.io.RandomAccessFile
具有随机读写文件的功能,
能够从文件的任何位置开始执行读写字节信息的操作。
可以把操作的文件理解为内部对应一个byte[],
通过文件指针指向文件的某一位置
RandomAccessFile维护一个指针,指向要读写的位置,指针会随着读写自动后移
b.构造方法:
RandomAccessFile(String fileName, String mode) throws FileNotFoundException
RandomAccessFile(File file, String mode) throws FileNotFoundException
参数mode指定访问模式: "r" - 只读模式,
"rw" - 读写模式
c.常用方法:
long getFilePointer():
返回当前读写指针所处的位置,从0开始
void seek(long pos):设定读写指针的位置
int skipBytes(int n): 使读写指针从当前位置跳过n个字节
long length(): 返回文件包含的字节数
void setLength(long newLength):
设置文件的长度
void write(byte[] b)
void write(byte[] b,int off,int len)
void write(int v):写入一个字节
void writeByte(int v)
void writeShort(int v)
void writeInt(int v)
void writeLong(long v)
void writeFloat(float v)
void writeDouble(double v)
void writeBoolean(boolean v)
void writeChar(int v)
void writeChars(String v)
void writeBytes(String v)
void writeUTF(String str)
int read(byte[] b)
int read(byte[] b,int off,int len)
int readInt()
byte readByte()
short readShort()
int read():读1个字节
long readLong()
float readFloat()
double readDouble()
char readChar()
String readUTF()
课堂练习:文件的断点续传
作业
1 复习实现全部课堂案例代码
2 创建文件
一个方法写入: 20 个 byte 分别是 1~20
一个方法读取: 逐个byte读取内容, 并且累加全部的结果
3 创建一个文件, 按照GBK编码写入20个中文
读取这个文件内容到byte数组, 并且还原回中文显示
在将byte数组按照16进行显示, 了解文字的GBK编码
4 定义一个工具类IOUtils,包含 方法read用于将一个文件的内容读取到字节数组中:
byte[] read(File file)
2011/08/03
=======================================
1.文件的访问
1)File类
a.java.io.File类代表文 件系统中对文件/目录
的管理操作,但不能对文件的内容进行访问
b.File类的常用API
File(String) - 构造方法,
通过给定的路径创建File对象
long length() - 返回文件的长度,以字节为单位
long lastModified() - 返回文件或目录
最后一次修改的时间
String getName () - 返回文件或目录的名 称
String getPath() - 返回文件或目录的路径
String getCanonicalPath() -
返回文件或目录的规范路径名字符串
boolean exists() - 判断文件或目录自否存在
boolean isFile() - 是否为文件
boolean isDirectory() - 是否为目录
boolean mkdir() - 创建目录
boolean mkdirs() - 创建目录,包括必须但不存在的父目录
boolean delete() - 删除文件或目录
boolean createNewFile() throw IOException - 创建新的文件,
如果指定的文件不存在并成功地创建,则返回 true;
如果指定的文件已经存在,则返回 false
File[] listFile() - 返回目录的文件
File[] listFile(FileFilter) -
返回目录的文件
FileFilter接口:用于抽象路径名的过滤器
方法:public boolean accept(File pathname)
2)文件目录的访问及文件的搜索
课堂练习:目录的递归显示
3)RandomAccessFile类
a.java.io.RandomAccessFile
具有随机读写文件的功能,
能够从文件的任何位置开始执行读写字节信息的操作。
可以把操作的文件理解为内部对应一个byte[],
通过文件指针指向文件的某一位置
RandomAccessFile维护一个指针,指向要读写的位置,指针会随着读写自动后移
b.构造方法:
RandomAccessFile(String fileName, String mode) throws FileNotFoundException
RandomAccessFile(File file, String mode) throws FileNotFoundException
参数mode指定访问模式: "r" - 只读模式,
"rw" - 读写模式
c.常用方法:
long getFilePointer():
返回当前读写指针所处的位置,从0开始
void seek(long pos):设定读写指针的位置
int skipBytes(int n): 使读写指针从当前位置跳过n个字节
long length(): 返回文件包含的字节数
void setLength(long newLength):
设置文件的长度
void write(byte[] b)
void write(byte[] b,int off,int len)
void write(int v):写入一个字节
void writeByte(int v)
void writeShort(int v)
void writeInt(int v)
void writeLong(long v)
void writeFloat(float v)
void writeDouble(double v)
void writeBoolean(boolean v)
void writeChar(int v)
void writeChars(String v)
void writeBytes(String v)
void writeUTF(String str)
int read(byte[] b)
int read(byte[] b,int off,int len)
int readInt()
byte readByte()
short readShort()
int read():读1个字节
long readLong()
float readFloat()
double readDouble()
char readChar()
String readUTF()
课堂练习:文件的断点续传
作业
1 复习实现全部课堂案例代码
2 创建文件
一个方法写入: 20 个 byte 分别是 1~20
一个方法读取: 逐个byte读取内容, 并且累加全部的结果
3 创建一个文件, 按照GBK编码写入20个中文
读取这个文件内容到byte数组, 并且还原回中文显示
在将byte数组按照16进行显示, 了解文字的GBK编码
4 定义一个工具类IOUtils,包含 方法read用于将一个文件的内容读取到字节数组中:
byte[] read(File file)