目录
一、引入
二、File概述
2.1、属性
2.2、构造方法
2.3、方法
2.4、代码示例
示例1
示例2
示例3
示例4
示例5
示例6
示例7
示例8
一、引入
文件是操作系统中的重要概念,Java作为一个跨平台语言,可以针对不同的操作系统处理文件。比如说windows与linux组织文件的方式是不同的,Java对不同系统的处理文件的API做了一定的封装,在jdk中提供了一个FIie类,程序员可以利用这个类来操作文件。
二、File概述
2.1、属性
修饰符及类型 | 属性 | 说明 |
static String | pathSeparetor | 依赖于系统的路径分隔符,String类型的表示 |
Static char | pathSeparetor | 依赖于系统的路径分隔符,char类型来表示 |
2.2、构造方法
签名 | 说明 |
File(File parent,String child) | 根据父目录创建一个新File实例 |
File(String pathname) | 根据文件路径创建一个新的实例,路径可以是绝对路径或者相对路径 |
File(String parent,String child) | 根据父目录+孩子文件路径,创建一个新的File实例,父目录用路径表示 |
2.3、方法
修饰符及返回值类型 | 方法签名 | 说明 |
String | getParent() | 返回File对象的父目录文件路径 |
String | getName() | 返回File对象的纯文件名称 |
String | getPath() | 返回File对象的文件路径 |
String | getAbsolutePath() | 返回File对象的相对路径 |
String | getCanonicalPath() | 返回File对象的修饰过的绝对路径 |
boolean | exists() | 判断File对象描述的文件是否真实存在 |
boolean | isDirectory() | 判断File对象代表的文件是否是一个目录 |
boolean | isFile() | 判断File对象代表的文件是否是一个普通文件 |
boolean | createNewFile() | 根据File对象,自动创建一个空文件。成功创建后返回true |
boolean | delete() | 根据File对象,删除该文件,成功删除后,返回true |
void | deleteOnExit() | 根据File对象,标注文件将被删除,删除动作会到JVM运行结束时才会进行 |
String[] | list() | 返回File对象代表的目录下的所有文件名 |
File[] | listFiles() | 返回File对象代表的目录下的所有文件,以File对象表示 |
boolean | mkdir() | 创建File对象所代表的目录 |
boolean | mkdirs() | 创建File对象所代表的目录,如果有必要,会创建中间目录 |
boolean | renameTo(File name) | 进行文件改名,也可以视为我们平时的剪切、粘贴操作 |
boolean | canRead() | 判断用户是否对文件有可读权限 |
boolean | canWrite() | 判断用户是否对文件有可写权限 |
2.4、代码示例
示例1
创建文件对象
import java.io.File;
/**
* 常见的创建文件的不同的构造方法
*/
public class Exe_02 {
public static void main(String[] args) {
File file=new File("D:\\study");
System.out.println(file);
File file1=new File(file,"document\\小黑子珍藏集");
System.out.println(file1);
File file2=new File("D:\\study\\document\\小黑子珍藏集");
System.out.println(file2);
File file3=new File("D:\\study\\document","小黑子珍藏集");
System.out.println(file3);
}
}
new File()文件创建方式并不要求文件是真实存在的。想要验证可以加上文件名.exists()打印出False。
示例2
打印文件路径
import java.io.File;
import java.io.IOException;
/**
* 文件路径
*/
public class Exe_03 {
public static void main(String[] args) throws IOException {
System.out.println("=======用绝对路径创建文件=======");
File file=new File("D:/蔡徐鸡/唱/跳/rap");
//获取文件信息
System.out.println(file.getPath());//文件路径
System.out.println(file.getParent());//父目录文件路径
System.out.println(file.getName());//纯文件名称
System.out.println(file.getCanonicalFile());//修饰过的相对路径
System.out.println(file.getAbsoluteFile());//绝对路径
System.out.println("=======用相对路径创建文件=======");
File file1=new File("./rap");
//获取文件信息
System.out.println(file1.getPath());//文件路径
System.out.println(file1.getParent());//父目录文件路径
System.out.println(file1.getName());//纯文件名称
System.out.println(file1.getCanonicalFile());//修饰过的相对路径
System.out.println(file1.getAbsoluteFile());//绝对路径
System.out.println(file1.exists()); //文件并不是真实存在的
}
}
file.getCanonicalFile():修饰过的绝对路径,获取绝对路径通常使用的方法。
示例3
文件是否存在,如果文件存在,那么就不能重复创建文件
import java.io.File;
import java.io.IOException;
/**
*文件是否存在,如果文件存在,就不能重复创建
*/
public class Exe_04 {
public static void main(String[] args) throws IOException {
//创建File对象
File file=new File("./test.txt");
//判断文件是否真实存在
System.out.println("文件是否真实存在"+file.exists());
//判断文件是不是一个文件
System.out.println("文件是不是同一个文件"+file.isFile());
//判断文件是不是同一个目录
System.out.println("文件是不是同一个目录"+file.isDirectory());
//创建一个真实的文件
System.out.println("文件是否创建成功"+file.createNewFile());
//判断文件是否真实存在
System.out.println("文件是否存在--》"+file.exists());
//判断文件是不是一个文件
System.out.println("文件是不是一个文件"+file.isFile());
//判断文件是不是一个目录
System.out.println("文件是不是一个目录"+file.isDirectory());
//打印文件路径
System.out.println("文件绝对路径"+file.getCanonicalFile());
}
}
示例4
删除文件
import java.io.File;
/**
* 删除文件对象
*/
public class Exe_05 {
public static void main(String[] args) {
//创建文件对象
File file=new File("./test.txt");
if(file.exists()){
System.out.println("删除文件"+file.delete());
}
}
}
示例5
创建目录
import java.io.File;
//创建目录
public class Exe_06 {
public static void main(String[] args) {
//创建文件对象
File file=new File("D:/study/小黑子");
//创建目录
System.out.println("创建目录"+file.mkdir());
System.out.println("==============");
//创建File对象
File file1=new File("D:/study/小黑子/他真的很努力/iKun");
//创建多级目录
System.out.println("创建多级目录"+file1.mkdirs());
}
}
示例6
获取文件名和目录名信息
/**
* list和listFiles
*/
import java.io.File;
import java.util.Arrays;
public class Exe_07 {
public static void main(String[] args) {
//创建File对象
File file=new File("D:/study");
//获取所有文件信息
String[] list=file.list();
System.out.println("文件名和目录名String类型"+ Arrays.toString(list));
//获取所有文件信息
File[] files=file.listFiles();
System.out.println("文件名和目录名File类型"+Arrays.toString(files));
}
}
示例7
文件重命名
import java.io.File;
/**
* 文件重命名
*/
public class Exe_08 {
public static void main(String[] args) {
//创建两个File对象
File sourceFile=new File("D:study/java/练习时长两年半");
File targetFile=new File("D:study/java/你们为什么不放过他");
//调用重命名方法
System.out.println("文件重命名"+sourceFile.renameTo(targetFile));
}
}
示例8
判断文件是否可读可写
/**
* 判断文件是否可读可写
*/
import java.io.File;
public class Exe_09 {
public static void main(String[] args) {
File file=new File("D:/study/小黑子/鸡哥写真集.docx");
System.out.println("是否可读"+file.canRead());
System.out.println("是否可写"+file.canWrite());
}
}
可以将“鸡哥写真集.docx” 的属性改为只读类型
再次强调一下,File类只是Java层面的一个对象,对应的文件并不一定要在系统中存在,要区分开Java对象和系统文件的区别。文章来源:https://www.toymoban.com/news/detail-523474.html
File只是对文件信息进行操作,创建,获取,删除,列表,重命名,但没有对文件内容进行操作--读取和写入(Input/Output) IO.文章来源地址https://www.toymoban.com/news/detail-523474.html
到了这里,关于Java中操作文件(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!