Java中File类的使用
java.io.File类用于表示文件(目录)
File类只用于表示文件(目录)的信息(名称、大小等),不能用于文件内容的访问
1 import java.io.File; 2 import java.io.IOException; 3 4 public class FileDemo { 5 6 public static void main(String[] args) throws IOException { 7 8 //创建文件夹 9 File file = new File("G:\\imooc\\test"); 10 if(!file.exists()){ 11 file.mkdir(); 12 System.out.println("文件夹创建成功"); 13 }else{ 14 file.delete(); 15 System.out.println("文件夹删除成功"); 16 } 17 18 //创建文件 19 File file2 = new File("G:\\imooc","fileDemo.txt"); 20 if(!file2.exists()){ 21 file2.createNewFile(); 22 System.out.println("文件创建成功"); 23 }else{ 24 file2.delete(); 25 System.out.println("文件删除成功"); 26 } 27 28 //判断是否是一个目录,如果是目录返回true,如果不是目录或目录不存在,返回false 29 System.out.println("判断是否为目录:"+file.isDirectory()); 30 //判断是否是一个文件 31 System.out.println("判断是否为文件:"+file2.isFile()); 32 33 //打印路径 34 System.out.println(file); 35 System.out.println(file2.getAbsolutePath()); 36 37 //打印文件名,打印的是最后的文件文字 38 System.out.println(file.getName()); 39 System.out.println(file2.getName()); 40 41 //访问父文件 42 System.out.println(file.getParent()); 43 44 } 45 46 }
列出File的一些常用操作,过滤、遍历等
1 import java.io.File; 2 import java.io.IOException; 3 4 /** 5 * 列出File的一些常用操作,过滤、遍历等 6 * @author lenovo 7 * 8 */ 9 public class FileUtil { 10 11 12 /** 13 * 列出指定目录下(包括其子目录)的所有文件 14 */ 15 public static void listDirectory(File dir)throws IOException{ 16 if(!dir.exists()){ 17 throw new IllegalArgumentException("目录:"+dir+"不存在"); 18 } 19 if(!dir.isDirectory()){ 20 throw new IllegalArgumentException(dir+"不是目录"); 21 } 22 23 //list()方法用于列出当前目录下的子目录和文件,返回的是字符串数组,只是子文件名称,不包含子文件下的内容 24 String[] filename = dir.list(); 25 for (String string : filename) { 26 System.out.println(dir+"\\"+string); 27 } 28 29 System.out.println("-----------------"); 30 //如果要遍历子目录下的内容,就需要构造成File对象做递归操作,File提供了返回子对象的API 31 File[] files = dir.listFiles();//返回的直接子目录(文件)的抽象 32 if(files != null && files.length>0){ 33 for (File file : files) { 34 if(file.isDirectory()){ 35 listDirectory(file); 36 }else{ 37 System.out.println(file); 38 } 39 } 40 } 41 42 } 43 }
RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件
RandomAccessFile支持随机访问文件,可以访问文件的任意位置
(1)Java文件模型
在硬盘上的文件是byte byte byte存储的,是数据的集合
(2)打开文件
有两种模式,“rw”(读写)“r”(只读)
RandomAccessFile raf = new RandomAccessFile(file,"rw");
文件指针,打开文件时指针在开头 pointer = 0;
(3)写文件
raf.write(int)
(4)读文件
int b = raf.read()
(5)文具读写完成以后一定要关闭