JAVA文件操作
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());
}
}
![image-20230216232916267](https://i-blog.csdnimg.cn/blog_migrate/42f494957f148dd341049045e8f67cf6.png)
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());
}
}
![image-20230216235845936](https://i-blog.csdnimg.cn/blog_migrate/afbfac93c56a7a6d589332d09837b8fd.png)
这时就在根目录下就能找到刚才创建的文件了,当文件存在时不重复创建
![image-20230217000151447](https://i-blog.csdnimg.cn/blog_migrate/6ad958a589b0782c9d95f512a7f246b8.png)
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());
}
}
}
![image-20230217000326607](https://i-blog.csdnimg.cn/blog_migrate/5bf471718cb148efcb60901ab10b54ec.png)
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());
}
}
![image-20230217211235947](https://i-blog.csdnimg.cn/blog_migrate/8c4734554109dfa7ae6125a0f4182cb6.png)
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));
}
}
![image-20230217212134793](https://i-blog.csdnimg.cn/blog_migrate/e8fd743fbd9ddef84e5ea118a17b46e5.png)
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());
}
}
![image-20230218131238400](https://i-blog.csdnimg.cn/blog_migrate/56424ce649f8132782ceff6f1d648a5d.png)
![image-20230218131307016](https://i-blog.csdnimg.cn/blog_migrate/27dd1f91d2aebb1d604f018049af3e17.png)