java.io.file类用于表示文件(目录)
file类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问
RandomAccessFile 是java提供的对文件内容的访问,既可以读取文件,也可以写文件
RandomAccessFile 支持随机访问文件,可以访问文件的任意位置
(1)java文件模型
在硬盘上的文件是byte(字节)存储的,是数据的集合
(2)打开文件
有两种模式"rw"
RandomAccessFile raf = RandomAccessFile(file,"rw");
文件指针,打开文件时指针在开头pointer = 0
(3)写方法
raf.write(int)--->只写一个字节(后八位),同时指针指向下一个位置,准备再次写入
(4)读方法
int b = raf.read()--->读一个字节
(5)文件读写完成之后一定要关闭
raf.close();
递归遍历文件目录
package com.xiaolu.www;
import java.io.File;
import java.io.IOException;
public class FileUtils {
public static void listDirectory(File dir) throws IOException{
if(!dir.exists()) {
throw new IllegalArgumentException("目录"+dir+"不存在!");
}
if(!dir.isDirectory()) {
throw new IllegalArgumentException(dir+"不是目录");
}
String[] filenames = dir.list(); //返回dir目录下的文件or路径名
for (String string : filenames) {
System.out.println(string);
}
File[] files = dir.listFiles(); //返回一个抽象路径名数组
if(files != null && files.length>0) { //如果数组不为空并且数组的长度大于0
for(File file : files) {
if(file.isDirectory())
listDirectory(file); //递归调用listDirectory方法
else {
System.out.println(file);
}
}
}
}
}