File类
java.io.File类
File类只用于表示文件(目录)的信息,不能用于文件内容的访问。
File类的常用方法
package com.test;
import java.io.File;
import java.io.IOException;
public class FileDemo {
public static void main(String[] args) {
File file = new File("/Users/Easen/Desktop/java_io");
System.out.println(File.pathSeparator//盘符
+"Users"
+File.separator //设置分隔符
+"Easen");
if (file.exists()/*判断文件目录是否存在*/) {
file.mkdir();//创建文件目录
}else {
file.delete();//删除文件目录
}
file.isDirectory();//判断文件是否是一个目录
file.isFile();//判断是否是一个文件
File file1 = new File("/Users/Easen/Desktop/ss/d");
File file2 = new File("/Users/Easen/Desktop/","t.txt");
if (!file2.exists()) {
try {
file2.createNewFile();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else {
file2.delete();
}
System.out.println(file2);//打印的是file.toString的内容 /Users/Easen/Desktop/t.txt
System.out.println(file2.getAbsolutePath());//抽象的路径 /Users/Easen/Desktop/t.txt
System.out.println(file1.getName());//文件名test.txt
System.out.println(file1.getParent());//父目录 /Users/Easen/Desktop
System.out.println(file2.getParentFile().getName()); //父目录 /Users/Easen/Desktop
if (!file1.exists()) {
file1.mkdirs();//创建多级目录
}
}
}
File文件名和目录名的读取
package com.test;
import java.io.File;
import java.io.IOException;
//列出File的一些常用操作
public class FileUtils {
/**
* @param file
* @throws IOException
*/
public static void listDirectory(File file)throws IOException {
if (!file.exists()) {
throw new IllegalArgumentException("目录"+file+"不存在");
}
if (!file.isDirectory()) {
throw new IllegalArgumentException(file+"不是目录");
}
/**
*
*/
String[] filenames = file.list();//返回的是字符串数组(.list()列出当前目录下的子目录名称和文件名,不包含子目录下的文件)
for (String string : filenames) {
System.out.println(string);
}
/*
* 如果要遍历子目录下的内容就需要构造出File对象做递归操作,File提供了直接返回File对象的方法
*/
File[] files = file.listFiles();//直接返回的是子目录的对象
if (files!=null&&files.length>0) {
for (File file2 : files) {
if (file2.isDirectory()) {
//做递归调用
listDirectory(file2);
} else {
System.out.println(file2);
}
}
}
}
}
测试类:
package com.test;
import java.io.File;
import java.io.IOException;
public class FileUtilsTest {
public static void main(String[] args) {
try {
FileUtils.listDirectory(new File("/Users/Easen/Downloads/download/IO"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
RandomAccessFile java提供的对文件内容的访问, 既可以读文件,也可以写文件。
RandomAccessFile 支持随机访问文件,可以访问文件的任意位置
1)java文件模型
在硬盘上的文件是byte byte byte存储的,是数据的集合
2)打开文件:
有两种模式”rw”(读写),”r”(只读)
RandomAccessFile raf = new RandomAccessFile (file,”rw”);
文件指针,打开文件时指针在开头 pointer = 0;
3)写方法
raf.write(int) —>只能写一个字节(后8位),同时指针指向下一个位置,准备再次写入
4)读方法
int b = raf.read() —> 读一个字节
5)文件读写完成以后一定要关闭

浙公网安备 33010602011771号