JAVA文件操作
[toc]
Java中通过java.io.file类来对文件(目录)进行抽象的描述。注意,有File对象时,不代表真实存在该文件。
1.属性
| 修饰符及类型 | 属性 | 说明 |
|---|
| static String | pathSeparator | 依赖于系统路径分割符,String类型的表示 |
| static char | pathSeparator | 依赖于系统路径分割符,char类型的表示 |
windows系统是:反斜杠\
Linux系统是:斜杠/
2.构造方法
| 方法 | 说明 |
|---|
| File(String pathname) | 根据文件路径创建一个新的File实例,路径可以是绝对路径也可以是相对路径 |
| File(File,String child) | 根据父目录+孩子文件路径,创建一个新的File实例 |
| File(String parent,String child) | 根据父目录+孩子文件路径,创建一个新的File实例,父目录用路径表示 |
3.方法
| 修饰符及返回 | 方法 | 说明 |
|---|
| String | getParent() | 放回File的父目录文件路径 |
| String | getName() | 纯文件目录 |
| String | getPath() | 文件路径 |
| String | getAbsolutePath() | 绝对路径 |
| String | getCanonicalPath() | 修饰过后的绝对路径 |
public class Constructor {
public static void main(String[] args) throws IOException {
System.out.println("==================使用绝对路径===================");
File file=new File("d:/JAVA/temp/test/hello.txt");
System.out.println(file.getParent());
System.out.println(file.getName());
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());
System.out.println("==================使用相对路径===================");
file=new File("./test/hello.txt");
System.out.println(file.getParent());
System.out.println(file.getName());
System.out.println(file.getPath());
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalPath());
}
}

file是Java层面的对象,并不是系统中的真实文件,是两种不同的概念
3.1创建文件
| boolean | exist() | 文件是否存在 |
|---|
| boolean | isDirectory() | 是否是一个目录 |
| boolean | isFile() | 是否是文件 |
| boolean | createNewFile() | 创建文件 |
public class Create {
public static void main(String[] args) throws IOException {
File file=new File("./test.txt");
System.out.println("是否存在:"+file.exists());
System.out.println("是不是一个目录:"+file.isDirectory());
System.out.println("是否是文件:"+file.isFile());
System.out.println("=============================");
System.out.println("创建文件:"+file.createNewFile());
System.out.println("是否存在:"+file.exists());
System.out.println("是不是一个目录:"+file.isDirectory());
System.out.println("是否是文件:"+file.isFile());
}
}

这时就在根目录下就能找到刚才创建的文件了,当文件存在时不重复创建

3.2 文件删除
public class Delete {
public static void main(String[] args) {
File file=new File("./test.txt");
if (file.exists()){
System.out.println("删除文件:"+file.delete());
}
}
}

3.3创建目录
| boolean | mkdir() |
|---|
| boolean | mkdirs() |
public class Mkdir {
public static void main(String[] args) throws IOException {
File file=new File("d:/JAVA/temp/test");
System.out.println("创建目录:"+file.mkdir());
System.out.println("===================");
File file1=new File("d:/JAVA/temp/test1/aaa/bbb/ccc");
System.out.println("创建多级目录:"+file1.mkdirs());
}
}

3.4文件名
| String[] | list() |
|---|
| File[] | listFiles() |
public class FileList {
public static void main(String[] args) {
File file=new File("d:/JAVA/temp");
String[] list=file.list();
System.out.println("文件名和目录名(String):"+Arrays.toString(list));
File[] files=file.listFiles();
System.out.println("文件名和目录名(File):"+ Arrays.toString(files));
}
}

3.5 文件重命名
3.6查看文件的可读性
| boolean | canRead() |
|---|
| boolean | canWrite() |
public class Permission {
public static void main(String[] args) {
File file=new File("d:/JAVA/temp/test/aaa.txt");
System.out.println("是否可读"+file.canRead());
System.out.println("是否可写"+file.canWrite());
}
}

