File类是java.io包下代表与平台无关的文件和目录的类,当程序想操作文件的时候,都可以通过File类来完成。File类能对文件进行新建、删除和重命名文件。但是File类不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。
创建文件:
创建一个文件路径,判断文件是否存在exists()和判断是否是目录isDirectory(),如果是则创建此抽象路径名指定的目录mkdir()。
File file = new File("E:/java.txt");
if (!file.exists()||!file.isDirectory()) {
System.out.println(file.mkdir()); }
结果:
判断文件是否可以读写执行:
System.out.println("是否可写:"+ file.canWrite());
System.out.println("是否可读:"+ file.canRead());
System.out.println("是否可执行:"+ file.canExecute());
System.out.println("是否是文件:"+ file.isFile());
System.out.println("是否是绝对路径:"+ file.isAbsolute());
System.out.println("是否可写:"+ file.canWrite());
System.out.println("是否隐藏:"+ file.isHidden());
结果:
获取文件信息:
System.out.println("文件大小:" + file.length());
System.out.println("文件最后修改时间:" + file.lastModified());
结果:
重命名文件:
file.renameTo(new File("E:/java22.txt"));
结果:
删除文件:
file.delete();
遍历文件目录:
一个方法获取文件和文件数的参数。
public static void PrintDirectory(File file,int count) {
判断文件是否存在:
if (file.exists()) {
生成缓冲区,缓存传过来的参数值:
StringBuffer buffer = new StringBuffer();
判断文件值是否为零:
if (count != 0) {
buffer.append("@"); }
遍历出文件数值:
for (int i = 0; i < count; i++) {
buffer.append("="); }
判断是否是目录,如果是则拼接中括号,新建抽象路径数组,遍历文件名:
if (file.isDirectory()) {
System.out.println(buffer.toString()+"[" + file.getName() + "]");
File[] files = file.listFiles();
for (File file2 : files) {
PrintDirectory(file2, count+1);
}
}
如果不是则返回文件名:
else { System.out.println(buffer.toString()+ ">" + file.getName()); }
最后在方法体中,输入遍历的目录对象,调用方法:
public static void main(String[] args) throws IOException {
File file = new File("E:/java22.txt");
PrintDirectory(file,0);
}
结果视图:
→