Java基础【File类】基础操作--史上最简单入门Demo

举报
ksh1998 发表于 2021/12/26 00:45:06 2021/12/26
【摘要】 前言: java.io.File类是对文件和文件件进行操作的,可以对文件进行读取,写入。以及遍历文件夹里的所有文件,还可以创建文件/文件夹和删除文件及文件夹。下面从如何创建File对象,如何获取对象的路径,路径分为绝对路径和相对路径。还有一些对文件和文件夹的判断功能。还有创建删除文件/文件夹 目录 获取功能方法 判断功能方法 ...

前言:

java.io.File类是对文件和文件件进行操作的,可以对文件进行读取,写入。以及遍历文件夹里的所有文件,还可以创建文件/文件夹和删除文件及文件夹。下面从如何创建File对象,如何获取对象的路径,路径分为绝对路径和相对路径。还有一些对文件和文件夹的判断功能。还有创建删除文件/文件夹

目录

获取功能方法

判断功能方法

创建和删除功能方法

综合案例:递归打印多级目录


获取功能方法

public String getAbsolutePath() :返回此File的绝对路径名字符串。


  
  1. File f = new File("d:/aaa/bbb.java");
  2. System.out.println("文件绝对路径:"+f.getAbsolutePath());
  3. System.out.println("文件构造路径:"+f.getPath());

public String getPath() :将此File转换为路径名字符串。


  
  1. File f2 = new File("d:/aaa");
  2. System.out.println("目录绝对路径:"+f2.getAbsolutePath());
  3. System.out.println("目录构造路径:"+f2.getPath());

public String getName() :返回由此File表示的文件或目录的名称。


  
  1. File f2 = new File("d:/aaa");
  2. System.out.println("目录名称:"+f2.getName());

public long length() :返回由此File表示的文件的长度。


  
  1. File f2 = new File("d:/aaa");
  2. System.out.println("目录长度:"+f2.length());

判断功能方法

public boolean exists() :此File表示的文件或目录是否实际存在。


  
  1. //创建文件 (如果判断文件夹也可怎么用)
  2. File f3=new File("ksh.txt");
  3. //判断文件是否存在
  4. if(!f3.exists()){
  5. System.out.println("文件存在");
  6. }

public boolean isDirectory() :此File表示的是否为目录。


  
  1. //F:\TGB\自己作品\Java\baistplus\k
  2. File f1=new File("F:\\TGB\\自己作品\\Java\\baistplus\\k");
  3. //判断是否存在
  4. if(f1.exists()){
  5. //判断是否是目录
  6. if(f1.isDirectory()){
  7. String[] list = f1.list();
  8. for (String s : list) {
  9. System.out.println(s);
  10. }
  11. }
  12. }else {
  13. System.out.println("文件夹不存在");
  14. }

public boolean isFile() :此File表示的是否为文件。


  
  1. File f = new File("d:\\aaa\\bbb.java");
  2. // 判断是否是文件
  3. System.out.println("d:\\aaa 文件?:"+f2.isFile());

创建和删除功能方法

public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。


  
  1. //创建文件
  2. File f3=new File("ksh.txt");
  3. //判断文件是否存在
  4. if(!f3.exists()){
  5. //不存在就创建一个ksh.txt的文件
  6. try {
  7. boolean newFile = f3.createNewFile();
  8. } catch (IOException e) {
  9. e.printStackTrace();
  10. }
  11. }

public boolean delete() :删除由此File表示的文件或目录。


  
  1. File f2= new File("newDir");
  2. File f=new File(pat);//文件
  3. // 文件的删除
  4. System.out.println(f.delete());// true
  5. // 目录的删除
  6. System.out.println(f2.delete());// true

public boolean mkdir() :创建由此File表示的目录。


  
  1. //创建目录
  2. File f4=new File("ksh");
  3. boolean mkdir = f4.mkdir();
  4. //判断目录是否创建成功
  5. if(mkdir==true){
  6. System.out.println("目录创建成功");
  7. }else{
  8. System.out.println("目录创建失败");
  9. }

public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。


  
  1. //创建多级目录
  2. File f5=new File(f4.getName()+"\\demo01");
  3. boolean mkdirs = f5.mkdirs();
  4. //判断是否创建成功
  5. if(mkdirs){
  6. System.out.println("多级目录创建成功!");
  7. String absolutePath1 = f5.getAbsolutePath();
  8. System.out.println(absolutePath);
  9. }else {
  10. System.out.println("多级目录创建失败!");
  11. }

综合案例:递归打印多级目录


  
  1. package com.itheima.demo03.Recursion;
  2. import java.io.File;
  3. /*
  4. * 递归打印目录
  5. * */
  6. public class Demo04Recurison {
  7. public static void main(String[] args) {
  8. File f=new File("F:\\TGB");
  9. getAllFile(f);
  10. }
  11. /*
  12. * 定义一个方法,参数传递File类型的目录
  13. * 方法中对目录进行遍历
  14. * */
  15. public static void getAllFile(File dir){
  16. //获取File类型数组
  17. File[] files = dir.listFiles();
  18. //输出遍历之前的文件夹名称
  19. System.out.println(dir);
  20. //遍历files数组
  21. for (File file : files) {
  22. //判断file是否是目录
  23. if(file.isDirectory()){
  24. //是目录就继续调用getAllFile()方法进行遍历(递归遍历目录)
  25. getAllFile(file);
  26. }else {
  27. //直接输出文件
  28. System.out.println(file);
  29. }
  30. }
  31. }
  32. }

 

文章来源: kangshihang.blog.csdn.net,作者:康世行,版权归原作者所有,如需转载,请联系作者。

原文链接:kangshihang.blog.csdn.net/article/details/111239664

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。