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. Electron快速入门之debug

    view->toggleDevelpper Tools 本地桌面调试 浏览器debug "start": "electron --inspect=5858 .&qu ...

  2. 随笔:关于.net core单文件AOT编译

    .Net Core单文件发布已经很流畅了(vs已支持图形化操作发布). 但类似Go或者Graalvm JDK的完全事前编译为本地机器码的红能功能,还未发布于.net 6特性中,还处于实验室中. 另外, ...

  3. [Cnoi2020]线性生物

    期望入门题.但是我不会做. 考虑设\(E_{x\to{x+1}}\)为\(x\)到\(x+1\)点的期望步数. 则\(ans = \sum_{i = 0}^{n} E_{x\to{x+1}}\) 知\ ...

  4. 洛谷 P6478 - [NOI Online #2 提高组] 游戏(二项式反演+树形 dp)

    题面传送门 没错这就是我 boom0 的那场 NOIOL 的 T3 一年前,我在 NOIOL #2 的赛场上折戟沉沙,一年后,我从倒下的地方爬起. 我成功了,我不再是从前那个我了 我们首先假设 A 拥 ...

  5. miRNA分析--数据过滤(一)

    miRNA 数据过滤我使用cutadapt 1 cutadapt -a AGATCGGAAGAGCACACGTCT -m 15 -q 20 --discard-untrimmed -o outname ...

  6. python-django 模板的抽象和继承

    {% include %}只需要一句即可,不需要end***

  7. chmod文件权限分配问题

    一. 文件(文件夹)的权限问题 一个文件或者文件夹,使用它的人有三类:root.当前用户和其他用户,例如,我们可以通过 ls -l xxx.xxx 来查看文件 "xxx.xxx" ...

  8. A Child's History of England.3

    So, Julius Caesar came sailing over to this Island of ours, with eighty vessels and twelve thousand ...

  9. day03 MySQL数据库之主键与外键

    day03 MySQL数据库之主键与外键 昨日内容回顾 针对库的基本SQL语句 # 增 create database meng; # 查 show databases; shwo create da ...

  10. CentOS7 安装配置RocketMQ --主从模式(master-slave)异步复制

    机器信息 192.168.119.129 主 192.168.119.128 从 配置host[两台机器] vim /etc/hosts 添加 192.168.119.129 rocketmq-nam ...