File
定义
-
是java.io包中唯一与文件有关的类,可以使用File类创建、删除等常见的文件操作,但不能操作文件中的数据
-
File类一抽象的方式代表文件名和目录路径名
-
File对象代表磁盘中实际存在的文件与目录(文件夹)
-
File
类实现了Serializable
、Comparable<File>
,说明它是支持序列化和排序的。
文件路径
相对路径
-
文件在硬盘上真正存在的路径
-
超链接文件位置也属于绝对路径
绝对路径
-
自己相对与目标位置的路径
-
“./” 代表当前目录
-
“../” 代表上一级目录,父级路径
-
“/” 当前根目录,是相对目录
-
对象创建
构造方法
-
通过给定的父抽象路径名和子路径名字符串创建一个新的File实例
File file = new File(File parent, String child);
-
通过将给定路径名字符串转换成抽象路径名来创建一个新 File 实例。
File file = new File(String pathname)
-
根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File file = new File(String parent, String child)
-
通过将给定的 file: URI 转换成一个抽象路径名来创建一个新的 File 实例。
File file = new File(URI uri)
注意
-
File类在实例化时一定要设置好路径
-
在使用File类指定路径的时候一定要注意操作系统间的差异,尽量使用separator进行分割
File myFile = new File("C:" + File.separator + "tmp" + File.separator, "test.txt");
File类有几个类似separator的静态字段,都是与系统相关的,在编程时应尽量使用
1 | public static final String pathSeparator | 常量 | 表示路径的分隔符(windows是“;”) |
---|---|---|---|
2 | public static final String separator | 常量 | 表示路径的分隔符(windows是“\”) |
常用方法
1 | public File(String pathname) | 构造 | 创建File类对象,传入完整路径 |
---|---|---|---|
2 | public boolean createNewFile()throws IOException | 普通 | 创建新文件 |
3 | public boolean delete() | 普通 | 删除文件 |
4 | public boolean exists() | 普通 | 判断文件是否存在 |
5 | public boolean isDirectory() | 普通 | 判断给定的路径是否在一个目录 |
6 | public long length() | 普通 | 返回文件的大小 |
7 | public String[] list() | 普通 | 列出指定目录的全部内容,只是名称 |
8 | public File[] listFiles() | 普通 | 列出指定目录的全部内容,会有路径 |
9 | Public Boolean mkdir() | 普通 | 创建一个目录 |
10 | Public Boolean renameTo(File dest) | 普通 | 为已有的文件重命名 |
实例操作
创建一个新文件
//为增加可移植性,建议使用File.separator File file = new File("d:"+File.separator+"text.txt"); try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); }
删除一个指定文件
File file = new File("d:"+File.separator+"text.txt"); if (file.exists()){ try { file.delete(); } catch (Exception e) { e.printStackTrace(); } }
综合创建,删除文件的操作
File file = new File("d:"+File.separator+"text.txt"); if (file.exists()){ try { file.delete(); } catch (Exception e) { e.printStackTrace(); } }else { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } }
创建一个文件夹
File file = new File("d:"+File.separator+"test"); if (file.exists()){ try { file.mkdir(); } catch (Exception e) { e.printStackTrace(); } }
列出指定目录的全部文件
使用list()列出全部内容
File file = new File("d:"+File.separator+"test"); String[] array = file.list(); for (String s : array) { System.out.println(s); }
使用listFiles()列出
File file = new File("d:"+File.separator+"test"); File[] array = file.listFiles(); for (File s : array) { System.out.println(s); }
判断一个给定的路径是否目录
File file = new File("d:"+File.separator+"test"); if (file.isDirectory()){ System.out.println(file.getPath()+"是目录"); }else{ System.out.println(file.getPath()+"不是目录"); }
列出指定目录的全部内容
File file = new File("d:" + File.separator + "test"); if (file != null) { if (file.isDirectory()) { File[] files = file.listFiles(); if (files != null) { for (File f : files) { System.out.println(f); } } } else { System.out.println(file); } }
RandomAccessFile类
概述
-
相对文件内容进行操作
-
可以随机的读取一个文件中指定位置的数据
构造函数
public RandomAccessFile(File file,String mode)throws FileNotFoundException
-
实例化此类的时候需要传递File类。告诉程序应该操作的是哪个文件,之后有个模式,文件的打开模式,常用的两种模式:
-
r:读
-
w:写
-
rw:读写,如果使用此模式,如果文件不存在,则会自动创建
-