File类
File类 可以表示文件, 也可以表示文件夹
File file = new File("C:\\user\\a.txt");
System.out.println(file);
控制台有如下输出:
C:\user\a.txt
由此可见,File仅仅只是表示一个文件路径,操作文件的事情交给IO流来完成
File类的常见API
- createNewFile():创建一个File
- exists():判断文件是否存在
- mkdir():来创建文件夹
- File.separator:根据操作系统选择对应的路径分隔符
//File 可以表示文件, 也可以表示文件夹
// 想要在哪里创建一个名字为什么的文件
public void test1() throws IOException {
//File 可以表示文件, 也可以表示文件夹
File file = new File("C:\\Users\\huangjinjin\\Desktop\\a");
File file2 = new File("C:\\Users\\huangjinjin\\Desktop", "hahahah.txt");
System.out.println(file2);
File parent = new File("C:"+File.separator+"Users"+File.separator+"huangjinjin/Desktop");
File file3 = new File(parent, "xi\\ha\\he");
System.out.println(file3);
// file 只是表示路径,文件不一定存在
if(!file.exists()){//exists 判断文件是否真的存在
// 不存在则想要创建一个文件
boolean b = file.createNewFile();
System.out.println(b);
}
// 创建文件夹
file3.mkdirs();// mkdirs 创建多级目录
}
以及以下常用的API操作:
- 绝对路径 C:\Deskto\…
- 相对路径 相对于当前工程的路径
File file = new File("a.txt");
file.createNewFile();
System.out.println("得到文件的名字"+file.getName());
System.out.println("相对路径:"+file.getPath());
System.out.println("绝对路径:"+file.getAbsolutePath());
System.out.println("得到父级目录String"+file.getParent());
System.out.println("得到父级目录File"+file.getParentFile());
System.out.println("文件是否可读"+file.canRead());
System.out.println("文件是否可写"+file.canWrite());
System.out.println("文件是否是隐藏文件"+file.isHidden());
System.out.println("判断是否是文件夹"+file.isDirectory());
System.out.println("判断是否是文件"+file.isFile());
// 此方法不能对文件夹起作用
System.out.println("文件内容长度"+file.length());
//文件名字重命名
File file2 = new File("b.txt");
boolean b2 = file.renameTo(file2);
System.out.println(b2);
// 以后如果还要操作b.txt ,则必须用file2 因为file代表的a.txt不存在了
file2.delete();
此外还要注意:
删除操作和重命名操作 操作的文件如果被使用着的话则操作失败
打印指定路径下的所有文件
- 使用while循环完成文件夹里面文件的遍历
public static void main(String[] args) {
String filePath = "D:\\BaiduNetdiskDownload\\dailyLearning\\src\\com\\llm\\test";
//循环得到文件夹
File file = new File(filePath);
Stack<File> stack = new Stack<>();
stack.push(file);
while (!stack.isEmpty()){
File pop = stack.pop();
File[] files1 = pop.listFiles();
for (File f:
files1) {
if(f.isDirectory()){
stack.push(f);
}else {
System.out.println(f);
}
}
}
}
- 使用递归完成文件的遍历
public static void main(String[] args) {
String filePath = "D:\\BaiduNetdiskDownload\\dailyLearning\\src\\com\\llm\\test";
listAll(filePath);
}
public static void listAll(String filePath){
File file = new File(filePath);
if (file == null){
return;
}
File[] files = file.listFiles();
for (File f :
files) {
if (f.isDirectory()){
listAll(f.getPath());
}else {
System.out.println(f.getAbsolutePath());
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/202488.html