java File类
来源:互联网 发布:javaweb考试系统源码 编辑:程序博客网 时间:2024/06/09 14:31
1.1 File类作用
文件可认为是相关记录或放在一起的数据的集合。文件一般存放在存储介质上:硬盘、u盘、光盘、软盘、云盘等。
java.io.File 类是专门对文件进行操作的类。(只能对文件本身进行操作,不能对文件内容操作)
File类是“文件和目录路径名的抽象表示”。 而不是指文件的内容(IO)。
File类定义了一些与平台无关的方法操作,如:创建、删除文件和重命名等。
Java中目录被看成是一个特殊的文件。 File.listFiles()方法可以返回目录中所有的子目录和文件。
在unix下路径分隔符为(/),而在windos中则是为(\),在java中可以正确的处理不同系统中的分隔符。注意:从1.5开始在java中可以统一使用(/)来作为路径分隔符。
1.2 File类的构造方法
public File(String pathname); 以pathname为路径创建File对象,如果pathname是相对路径,则是相对于Java的系统属性user.dir中的路径。(对eclipse创建的java工程来说,就是该工程的根目录。)
public File(File dir,String name);
- public File(String parentName,String name);
1.3 File类文件属性
1.3.1 属性:
public static final String separator 存储了当前系统的名称分隔符,在 UNIX 和Mac系统上,此字段的值为 '/';在 Windows 系统上,它为 '\';为了程序的跨平台特性,文件的路径应该用这个属性值来代表。
public static final char pathSeparator 存储了当前系统默认路径分割符号,在 UNIX 和Mac系统上,此字段的值为':',Windows系统是';'。
1.4 使用File类对文件进行访问
示例代码:
File f1 = new File("C:/a.txt"); String a1 = f1.getAbsolutePath(); System.out.println("a1:" + a1); String path1 = f1.getPath();// 返回创建 File的路径 System.out.println("path1:" + path1); File f2 = new File("helloworld.txt"); String a2 = f2.getAbsolutePath(); System.out.println("a2:" + a2); File f3 = f2.getAbsoluteFile(); System.out.println("f3:" + f3.getPath()); /** 在使用该方法的时候,最好把File 转成以绝对路径描述的FIle对象 */ String parent = f3.getParent();// 得到該File 所在目录的路径String System.out.println("parent:" + parent); /** 在使用该方法的时候,最好把File 转成以绝对路径描述的FIle对象 */ File parentFile = f3.getParentFile(); System.out.println("parentFile:" + parentFile);// 得到該File 所在目录的路径File String path2 = f2.getPath();// 返回创建 File的路径 System.out.println("path2:" + path2); String name = f2.getName();// 得到文件名字 System.out.println("name:" + name); boolean exists = f2.exists(); System.out.println("exists:" + exists); if (exists) { /*** 以下方法都需要操作平台去操作文件,在使用的时候,最好对该文件判断是否存在 **/ boolean canRead = f2.canRead(); System.out.println("canRead:" + canRead); boolean canWrite = f2.canWrite(); System.out.println("canWrite:" + canWrite); boolean hidden = f2.isHidden(); System.out.println("hidden:" + hidden); boolean file = f2.isFile(); System.out.println("file:" + file); boolean directory = f2.isDirectory(); System.out.println("directory:" + directory); long lastModified = f2.lastModified(); System.out.println("最后一次修改的时间:" + lastModified); long length = f2.length(); System.out.println("length:" + length); /*** 以上方法都需要操作平台去操作文件 **/ }
1.5 使用File类对文件进行操作
示例代码:
package main3;import java.io.File;import java.io.IOException;public class Main2 { public static void main(String[] args) { File f1 = new File("a/text.txt"); /**** 创建文件(要确保该文件所在的目录存在,否则会抛IO异常) ****/ if (!f1.exists()) { try { boolean createNewFile = f1.createNewFile(); System.out.println("createNewFile:" + createNewFile); } catch (IOException e) { e.printStackTrace(); } } else { System.out.println("该文件已存在..."); } /** 删除文件(如果该File是目录,则必须保证该目录问空目录。且只删除最后一级目录) */ File f2 = new File("b/text.txt"); boolean delete = f2.delete(); System.out.println("delete:" + delete); /** 创建目录(只创建最后一级目录,也需要确保该目录所在的目录存在,否则返回false) */ File f3 = new File("c"); boolean mkdir = f3.mkdir(); System.out.println("mkdir:" + mkdir); /** 创建多级目录 */ File f4 = new File("d/b/f/c/c"); boolean mkdirs = f4.mkdirs(); System.out.println("mkdirs:" + mkdirs); System.out.println("正常结束..."); testRenameTo(); } private static void testRenameTo() { // renameTo 剪切功能 File from = new File("test.mp3");// 剪切的源文件的路径描述 File to = new File("helloworld.mp3");// 粘贴的目标文件的路径描述 /** 如果源文件和目标文件所在的目录相同,则就变成了重名功能 **/ boolean renameTo = from.renameTo(to); System.out.println(renameTo); }}
1.6 使用File类浏览目录中的文件和子目录
课堂练习:使用 递归算法 打印出目录(文件夹)中所有文件与目录(包括目录内部的文件和目录)。
private static void listChilds(File f){ if (f==null) return; System.out.println(f.getPath()); if (f.isFile()) return; File[] files = f.listFiles(); for (File file : files) listChilds(file); }
示例代码:
File file = new File("D:\\java");// File f2 = new File(file, "java001"); System.out.println(f2); File f4 = new File("D:\\java", "java001"); System.out.println(f4); String[] list = file.list();// 返回该目录下的所有文件的名字 for (String path : list) { System.out.println(path); } // 返回该目录下的所有 File 文件路径描述 File[] listFiles = file.listFiles(); if (listFiles != null) { for (File f : listFiles) { System.out.println(f); } } // 返回此目录中满足指定过滤器的文件和目录 File[] files = file.listFiles(new FileFilter() { @Override public boolean accept(File pathname) { if (pathname.isDirectory()) { return true; } else { return false; } } }); for (File f : files) { System.out.println("--->" + f); }
- File类java.io.File
- 类 java.io.File
- java File类
- java.io.File类
- java File类
- java中File类
- Java IO---File 类
- java File类
- java IO-File类
- java中的File类
- java File 类大全
- java笔记 File类
- Java 常用类File
- java-----File类
- Java IO--File类
- java File类
- java File类
- java中的File类
- 通信领域名词整理
- HDU1200-To and Fro(字符串)
- 问题 : 带通配符的数
- JDBC事务控制
- 左旋转字符串
- java File类
- Android中SQLite使用及DataBase管理
- Scanner 的next()或nextInt()与nextLine()连续调用时出现的问题
- ios开发 利用AFNetworking实现同时上传字符串与图片数据
- Navicat for Oracle Cannot load OCI DLL
- Rikka with Subset HDU
- Activity启动模式与任务栈全面解析(上)
- 什么是 Delphi.NET-
- windows下用navicat远程链接虚拟机Linux下MySQL数据库