java File 类对操作系统文件目录进行操作:增删查
File类
1,概述
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 类对操作系统文件目录进行操作:增删查的更多相关文章
- Java学习笔记——File类之文件管理和读写操作、下载图片
Java学习笔记——File类之文件管理和读写操作.下载图片 File类的总结: 1.文件和文件夹的创建 2.文件的读取 3.文件的写入 4.文件的复制(字符流.字节流.处理流) 5.以图片地址下载图 ...
- Java File类总结和FileUtils类
Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...
- Java File 类的使用方法详解
Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看 ...
- Java File 类的使用方法详解(转)
转自:http://www.codeceo.com/article/java-file-class.html Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对J ...
- Java File类 mkdir 不能创建多层目录
File f = new File("/home/jp/Upload"); if ((!f.exists()) || (!f.isDirectory())) {boolean re ...
- Java File类基础解析 1
Java File类基础解析 1 File类的构造方法 public File(String pathname) :通过给定的路径名字符转换为抽象路径名来创建新的File实例 String path ...
- SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码)
SQL Server 表的管理_关于表的操作增删查改的操作的详解(案例代码) 概述: 表由行和列组成,每个表都必须有个表名. SQL CREATE TABLE 语法 CREATE TABLE tabl ...
- Java File类基本操作
我们可以利用Java.io.File类对文件进行操作,基本操作如下: 1)创建文件: public boolean createNewFile() throws IOException 2)删除文件: ...
- Java File类常用方法及实例
创建:createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false. createTempFile(String prefix, String s ...
随机推荐
- 描述高频题之队列&栈
栈和队列 全文概览 基础知识 栈 栈是一种先进后出的数据结构.这里有一个非常典型的例子,就是堆叠盘子.我们在放盘子的时候,只能从下往上一个一个的放:在取的时候,只能从上往下一个一个取,不能从中间随意取 ...
- 2021.9.30 Codeforces 中档题四道
Codeforces 1528D It's a bird! No, it's a plane! No, it's AaParsa!(*2500) 考虑以每个点为源点跑一遍最短路,每次取出当前距离最小的 ...
- 【机器学习与R语言】8- 神经网络
目录 1.理解神经网络 1)基本概念 2)激活函数 3)网络拓扑 4)训练算法 2.神经网络应用示例 1)收集数据 2)探索和准备数据 3)训练数据 4)评估模型 5)提高性能 1.理解神经网络 1) ...
- Docker-Mysql-proxy Mysql Proxy实现读写分离
Docker-Mysql-proxy Mysql实现读写分离与负载 原理 MySQL Proxy处于客户端应用程序和MySQL服务器之间,通过截断.改变并转发客户端和后端数据库之间的通信来实现其功 ...
- 毕业设计压力测试——jmeter
------------恢复内容开始------------ JMeter是一款纯java编写负载功能测试和性能测试开源工具软件.相比Loadrunner而言,JMeter小巧轻便且免费,逐渐成为了主 ...
- iptables_超解
查询: -t选项,指定要操作的表,使用-L选项,查看-t选项对应的表的规则,-L选项的意思是,列出规则,所以,上述命令的含义为列出filter表的所有规则 显示出了3条链INPUT链.FORWARD链 ...
- 65-Binary Tree Zigzag Level Order Traversal
Binary Tree Zigzag Level Order Traversal My Submissions QuestionEditorial Solution Total Accepted: 6 ...
- Apache RocketMQ分布式消息传递和流数据平台及大厂面试宝典v4.9.2
概述 **本人博客网站 **IT小神 www.itxiaoshen.com 定义 Apache RocketMQ官网地址 https://rocketmq.apache.org/ Latest rel ...
- C#点击按钮添加标签
<asp:Button ID="button1" runat="server" Text="创建" onclick="But ...
- 多线程高级篇1 — JUC — 只弄到处理高并发集合问题
1.线程池 1.1).什么是线程池? 池( pool ),就是一个容器,所以线程池就是把多个线程对象放到一个容器中 1.2).如何创建线程池? 先来了解几个常识 Executor -- 这是一个接口( ...