File类

1,概述

File类是java.io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成。

2,构造方法

  • public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
  • public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的File实例。
  • public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的File实例。

3,常用方法

在计算机中,在我们操作目录的时候,这个.代表是当前目录,..代表父目录

1,文件名相关的方法:

  • getAbsolutePath():返回文件或者目录的绝对路径
  • getPath():将此抽象路径名转换为路径名字符串
  • getName():返回文件名
  • renameTo(File file):把文件剪切为一个新的路径

2,文件检测相关的方法:

  • boolean exists(): 判断File对象所对应的文件或目录是否存在
  • boolean canWrite(): 判断File对象所对应的文件和目录是否可写。如果是目录,表示是否可以在目录中创建文件。如果是文件,表示是否可以在文件中写入内容。
  • boolean canRead(): 判断File对象所对应的文件和目录是否可读。
  • boolean isFile(): 判断File对象所对应的是否是文件,而不是目录
  • boolean isDirectory(): 判断File对象所对应的是否是目录,而不是文件
  • boolean isAbsolute(): 判断File对象所对应的文件或目录是否是绝对路径。该方法消除了不通平台的差异,可以直接判断 File 对象是否为绝对路径。在Linux系统上如果文件开头是一个斜杠/那么是绝对路径,在windows系统上,如果文件开头是一个磁盘盘符,那么是绝对路径

3,获取文件的常规信息:

  • long lastModified(): 返回文件的最后修改时间戳
  • long length(): 返回文件内容的长度

4,文件增删:

  • boolean createNewFile(): File所对应的文件不存在时,该方法将新建一个该File对象所指定的新文件,如果创建成功则返回 true;否则返回false
  • boolean delete(): 删除File对象所对应的文件或路径

5,目录相关的方法:

  • boolean mkdir(): 试图创建File所对应的目录,如果创建成功,则返回true; 否则返false 调用该方法时File对象必须对应一个路径,而不是一个文件
  • boolean mkdirs():创建File对应的目录,包括其父目录
  • String[] list(): 列出 File 象的所有子文件和路径名 ,返回String数组
  • File[] listFiles(): 列出File对象的所有子文件和路径,返回file数组。

小测试:递归查找所有子目录下文件

import javax.naming.Name;
import java.io.File;
import java.io.FileInputStream;
import java.io.FilenameFilter; /**
* @ClassName JavaIOFileExample
* @projectName: object1
* @author: Zhangmingda
* @description: XXX
* date: 2021/4/16.
*/
public class JavaIOFileExample {
public static void main(String[] args) {
File file = new File("输入输出文件读写/src/test");
file.mkdir(); //创建目录
// String[] filelist = file.list((dir, fileName)-> fileName.endsWith(".txt")); //过滤器
String[] nameList = file.list();
//打印文件名
for (String f : nameList){
System.out.println(f);
}
//打印目录下所有文件
listDir(file);
} /**
* 简单封装一下便于入口只需指定一个目录名
* @param file
*/
public static void listDir(File file){
listDir(file,0);
} /**
* @param dir File 对象
* @param spaceNum 需要打印的空格数,便于区分层级
*/
public static void listDir(File dir, int spaceNum){
for(int i=0; i<spaceNum; i++){
System.out.print(" ");
}
System.out.println(dir.getName());
File[] files = dir.listFiles();
for(File subDirOrFile : files){
if(subDirOrFile.isDirectory()){
listDir(subDirOrFile,spaceNum + 2);
}else{
for(int i=0; i<spaceNum + 2; i++){
System.out.print(" ");
}
System.out.println(subDirOrFile.getName());
}
}
}
}

java File 类对操作系统文件目录进行操作:增删查的更多相关文章

  1. Java学习笔记——File类之文件管理和读写操作、下载图片

    Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...

  2. Java File类总结和FileUtils类

    Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...

  3. Java File 类的使用方法详解

    Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看 ...

  4. Java File 类的使用方法详解(转)

    转自:http://www.codeceo.com/article/java-file-class.html Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对J ...

  5. Java File类 mkdir 不能创建多层目录

    File f = new File("/home/jp/Upload"); if ((!f.exists()) || (!f.isDirectory())) {boolean re ...

  6. Java File类基础解析 1

    Java File类基础解析 1 File类的构造方法 public File(String pathname) :通过给定的路径名字符转换为抽象路径名来创建新的File实例 String path ...

  7. SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码)

    SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码) 概述: 表由行和列组成,每个表都必须有个表名. SQL CREATE TABLE 语法 CREATE TABLE tabl ...

  8. Java File类基本操作

    我们可以利用Java.io.File类对文件进行操作,基本操作如下: 1)创建文件: public boolean createNewFile() throws IOException 2)删除文件: ...

  9. Java File类常用方法及实例

    创建:createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false. createTempFile(String prefix, String s ...

随机推荐

  1. xml的语法规则

    XML 文档必须有根元素 XML 文档必须有关闭标签 XML 标签对大小写敏感 XML 元素必须被正确的嵌套 XML 属性必须加引号 针对元数据的 XML 属性 有时候会向元素分配 ID 引用.这些 ...

  2. NFLSOJ #10317. -「2020联考北附2」三千世界(找等价表达+树形 dp)

    题面传送门 出题人可能原本感觉没啥难度的 T2 竟然变成了防 AK 题,奇迹奇迹( 首先带着这个 \(\max\) 肯定不太好处理,考虑找出 \(f(S)\) 的等价表达.我们考虑以 \(1\) 为根 ...

  3. 洛谷 P6672 - [清华集训2016] 你的生命已如风中残烛(组合数学)

    洛谷题面传送门 题解里一堆密密麻麻的 Raney 引理--蒟蒻表示看不懂,因此决定写一篇题解提供一个像我这样的蒟蒻能理解的思路,或者说,理解方式. 首先我们考虑什么样的牌堆顺序符合条件.显然,在摸牌任 ...

  4. 【R】行或列数目不同的两个数据框如何用rbind/cbind合并?

    目录 前言 方法一:dplyr的bind_rows 方法二:plyr的rbind.fill 前言 通常我们用rbind和cbind合并相同行列的数据框.当两个数据框具有不同行列数目时,直接用会报错. ...

  5. 如何使用csapp文件

    深入理解操作系统中有个csapp.h的头文件 以下来介绍下如何使用它: 该头文件下载地址为http://download.csdn.net/detail/tzasd89812/4206284 在Ubu ...

  6. JVM2 类加载子系统

    目录 类加载子系统 类加载器子系统 类加载器ClassLoader角色 类加载的过程 案例 加载Loading 连接Linking 初始化Intialization clinit() 类的加载器 虚拟 ...

  7. java.sql.SQLException: Cannot create com._51doit.pojo.User: com._51doit.pojo.User Query: select * from user where username = ? and password = ? Parameters: [AA, 123]

    在从数据库中查询数据,并存入javabean中去时,报这个错误 原因:在建立User类去存储信息时没有创建无参构造方法,创建一个无参构造方法即可

  8. 一起手写吧!Promise!

    1.Promise 的声明 首先呢,promise肯定是一个类,我们就用class来声明. 由于new Promise((resolve, reject)=>{}),所以传入一个参数(函数),秘 ...

  9. 3.3 rust HashMap

    The type HashMap<K, V> stores a mapping of keys of type K to values of type V. It does this vi ...

  10. 2.8 rust 枚举与模式匹配

    Enums and Pattern Matching 摘要 枚举定义 enum IpAddrKind { V4, V6, } 枚举方法 fn main() { enum Message { Quit, ...