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. 描述高频题之队列&栈

    栈和队列 全文概览 基础知识 栈 栈是一种先进后出的数据结构.这里有一个非常典型的例子,就是堆叠盘子.我们在放盘子的时候,只能从下往上一个一个的放:在取的时候,只能从上往下一个一个取,不能从中间随意取 ...

  2. 2021.9.30 Codeforces 中档题四道

    Codeforces 1528D It's a bird! No, it's a plane! No, it's AaParsa!(*2500) 考虑以每个点为源点跑一遍最短路,每次取出当前距离最小的 ...

  3. 【机器学习与R语言】8- 神经网络

    目录 1.理解神经网络 1)基本概念 2)激活函数 3)网络拓扑 4)训练算法 2.神经网络应用示例 1)收集数据 2)探索和准备数据 3)训练数据 4)评估模型 5)提高性能 1.理解神经网络 1) ...

  4. Docker-Mysql-proxy Mysql Proxy实现读写分离

      Docker-Mysql-proxy Mysql实现读写分离与负载 原理 MySQL Proxy处于客户端应用程序和MySQL服务器之间,通过截断.改变并转发客户端和后端数据库之间的通信来实现其功 ...

  5. 毕业设计压力测试——jmeter

    ------------恢复内容开始------------ JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主 ...

  6. iptables_超解

    查询: -t选项,指定要操作的表,使用-L选项,查看-t选项对应的表的规则,-L选项的意思是,列出规则,所以,上述命令的含义为列出filter表的所有规则 显示出了3条链INPUT链.FORWARD链 ...

  7. 65-Binary Tree Zigzag Level Order Traversal

    Binary Tree Zigzag Level Order Traversal My Submissions QuestionEditorial Solution Total Accepted: 6 ...

  8. Apache RocketMQ分布式消息传递和流数据平台及大厂面试宝典v4.9.2

    概述 **本人博客网站 **IT小神 www.itxiaoshen.com 定义 Apache RocketMQ官网地址 https://rocketmq.apache.org/ Latest rel ...

  9. C#点击按钮添加标签

    <asp:Button ID="button1" runat="server" Text="创建" onclick="But ...

  10. 多线程高级篇1 — JUC — 只弄到处理高并发集合问题

    1.线程池 1.1).什么是线程池? 池( pool ),就是一个容器,所以线程池就是把多个线程对象放到一个容器中 1.2).如何创建线程池? 先来了解几个常识 Executor -- 这是一个接口( ...