20天jvava(14)

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中,可以使用InputStream和OutputStream类来读写二进制文件。InputStream用于读取二进制数据,而OutputStream用于写入二进制数据。下面是一个简单的示例代码,展示了如何使用InputStream和OutputStream读写二进制文件: ```java import java.io.*; public class BinaryFileReadWrite { public static void main(String[] args) { String filePath = "example.bin"; try { // 创建二进制文件写入数据 OutputStream outputStream = new FileOutputStream(filePath); byte[] data = {1, 2, 3, 4, 5}; outputStream.write(data); outputStream.close(); // 读取二进制文件 InputStream inputStream = new FileInputStream(filePath); byte[] buffer = new byte[1024]; int bytesRead = inputStream.read(buffer); while (bytesRead != -1) { // 处理读取到的数据 for (int i = 0; i < bytesRead; i++) { System.out.print(buffer[i] + " "); } bytesRead = inputStream.read(buffer); } inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在上面的示例代码中,我们首先使用OutputStream来创建一个名为"example.bin"的二进制文件,并写入一些数据。然后,我们使用InputStream来读取文件中的数据,并将其打印到控制台上。注意,我们使用了一个字节数组作为缓冲区,每次读取最多1024个字节,并且在读取完整个文件之后,需要关闭InputStream对象。 当然,这只是一个简单的示例,实际的二进制文件读写可能涉及到更复杂的数据结构和算法,需要根据具体情况进行设计和实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值