Java File类常用方法及实例
创建:
createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false。
createTempFile(String prefix, String suffix, File directory) 在指定目录中创建一个新的空文件,使用给定的前缀和后缀字符串生成其名称。
mkdir() 在指定位置创建一个单级文件夹。
mkdirs() 在指定位置创建一个多级文件夹。
renameTo(File dest)如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名, 如果目标文件与源文件不是同一个路径下,那么renameTo的作用就是剪切,而且还不能操作文件夹。
删除:
delete() 删除文件或者一个空文件夹,不能删除非空文件夹,马上删除文件,返回一个布尔值。
deleteOnExit()jvm退出时删除文件或者文件夹,用于删除临时文件,无返回值。
判断:
exists() 文件或文件夹是否存在。
isFile() 是否是一个文件,如果不存在,则始终为false。
isDirectory() 是否是一个目录,如果不存在,则始终为false。
isHidden() 是否是一个隐藏的文件或是否是隐藏的目录。
isAbsolute() 测试此抽象路径名是否为绝对路径名。
boolean canExecute()判断文件是否可执行
boolean canRead()判断文件是否可读
boolean canWrite() 判断文件是否可写
获取:
getName() 获取文件或文件夹的名称,不包含上级路径。
getAbsolutePath()获取文件的绝对路径,与文件是否存在没关系
length() 获取文件的大小(字节数),如果文件不存在则返回0,如果是文件夹也返回0。
getParent() 返回此抽象路径名父目录的路径名字符串;如果此路径名没有指定父目录,则返回null。
lastModified()获取最后一次被修改的时间。
文件夹相关:
static File[] listRoots()列出所有的根目录(Window中就是所有系统的盘符)
list() 返回目录下的文件或者目录名,包含隐藏文件。对于文件这样操作会返回null。
listFiles() 返回目录下的文件或者目录对象(File类实例),包含隐藏文件。对于文件这样操作会返回null。
list(FilenameFilter filter)返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。
listFiles(FilenameFilter filter)返回指定当前目录中符合过滤条件的子文件或子目录。对于文件这样操作会返回null。
********************实例********************
import java.io.File;
1.在指定位置创建文件creatNewFile()
File myFile = new File("D:\\test.txt");
if(!myFile.exists){
myFile.mkdir();//创建文件夹
myFile.creatNewFile();创建文件
}
②createTempFile(String prefix, String suffix, File directory)
File file=null;
File dir=new File("E:");
file=file.createTempFile("javatemp", ".txt",dir);
System.out.println(file.getPath());
2.在指定位置创建文件夹mkdir()
File myFile = new File("D:\\yxy");
if(!myFile.exists){
myFile.mkdir();//创建文件夹
}
3.在指定位置创建一个多级文件夹mkdirs()
File myFile = new File("D:/yxy");
if(!myFile.exists){
//如果父目录存在,则直接在父目录中创建子目录;如果父目录不存在,递归创建所有目录
myFile.mkdirs();
}
4.使用递归遍历目录:
public class Test2 {
public static void main(String[] args) {
Myfile yxy=new Myfile();
yxy.yxyfile();
}
}
class Myfile{
File myFile = new File("D:/yxy");
File[] files=myFile.listFiles();
void yxyfile(){
for(File fd:files){
if(fd.isDirectory()){
System.out.println(fd);
files =fd.listFiles();//生成新的listFiles()
yxyfile();//使用递归
}else{
System.out.println(fd);
}
}
}
5.清空目录下的所有文件夹和文件
①方法一:
public class Test2 {
public static void main(String[] args) {
Myfile yxy=new Myfile();
yxy.yxyfile();
}
}
class Myfile{
File myFile = new File("D:/yxy");
File[] files=myFile.listFiles();
void yxyfile(){
//第一个for循环用于删除文件
ArrayList<File> dirname=new ArrayList<File>();//用于保存目录
for(File fd:files){
if(fd.isDirectory()){
System.out.println(fd);
files =fd.listFiles();//生成新的listFiles()
dirname.add(fd);
yxyfile();//使用递归
}else{
System.out.println(fd);
fd.delete();//删除所有的文件
}
//删除空目录
for(File dir:dirname){
dir.delete();
}}}}
②方法二:
public class Test2 {
public static void main(String[] args) {
Myfile yxy=new Myfile();
yxy.yxyfile();
}
}
class Myfile{
File myFile = new File("D:/yxy");
File[] files=myFile.listFiles();
void yxyfile(){
//第一个for循环用于删除文件
for(File fd:files){
if(fd.isDirectory()){
System.out.println(fd);
files =fd.listFiles();//生成新的listFiles()
yxyfile();//使用递归
}else{
System.out.println(fd);
fd.delete();//删除所有的文件
}
//删除空目录
File[] dir=myFile.listFiles();//剩下的空文件夹
for(int i=0;i<dir.length;i++){
dir[i].delete();
}}}}
③方法三(调用cmd,简单):
public class Test1 {
public static void main(String[] args) {
try {
String cmd = "cmd.exe /c rd /s/q E:\\yxy";
Runtime.getRuntime().exec(cmd);
System.out.println("yes");
} catch (Exception e) {
System.out.println("Error");
} }}
注:/s代表删除所有子目录及子目录下文件,/q代表删除时不需再次确认,
6.list()和listFiles()的区别
File file=new File("E:\\xxx");
String[] filename1=file.list();//返回文件或目录的名字
File[] filename2=file.listFiles();//返回文件或目录的完整路径
File[] filename3=file.listRoots();//列出所有根目录(Window中就是所有系统的盘符)
for(String name1:filename1){System.out.println(name1);}
for(File name2:filename2){System.out.println(name2);}
for(File name3:filename3){System.out.println(name3);}
输出:
list():
python内置进制转换方法.png
python的面向对象.png
新建文件夹
listFiles():
E:\xxx\python内置进制转换方法.png
E:\xxx\python的面向对象.png
E:\xxx\新建文件夹
listRoots():
C:\
D:\
E:\
Z:\
7.renameTo(File dest)
注释:如果目标文件与源文件是在同一个路径下,那么renameTo的作用是重命名, 如果目标文件与源文件不是在同一个路径下
,那么renameTo的作用就是剪切,而且还不能操作文件夹。
①重命名:
File file=new File("E:\\xxx\\python的面向对象.png");
file.renameTo(new File("E:\\xxx\\py的面向对象.png"));
②移动文件:
File file=new File("E:\\xxx\\python的面向对象.png");
file.renameTo(new File("D:\\python的面向对象.png"));
8.调用CMD命令移动整个文件夹
try{
Runtime.getRuntime().exec("cmd.exe /c move E:\\xxx\\1 E:");
}catch(Exception e){
System.out.println("Error");
}
注意:
String curDir = System.getProperty("user.dir");
System.out.println("你当前的工作目录为 :" + curDir);
System.getProperty这是获取JVM的系统属性,user.dir(user working directory)
Java File类常用方法及实例的更多相关文章
- java File类常用方法
file类常用方法 delete()删除此抽象路径名表示的文件和目录. equals()测试此抽象路径名与给定对象是否相等. exists()测试此抽象路径名表示的文件或目录是否存在. getName ...
- Java File类基础解析 1
Java File类基础解析 1 File类的构造方法 public File(String pathname) :通过给定的路径名字符转换为抽象路径名来创建新的File实例 String path ...
- 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类总结和FileUtils类
Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. Fi ...
- Java File类 mkdir 不能创建多层目录
File f = new File("/home/jp/Upload"); if ((!f.exists()) || (!f.isDirectory())) {boolean re ...
- java File 类对操作系统文件目录进行操作:增删查
File类 1,概述 File类是java.io包下代表与平台无关的文件和目录,也就是说,如果希望在程序中操作文件和目录,都可以通过File类来完成. 2,构造方法 public File(Strin ...
- Java——File类概述
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
- Java——File类成员方法
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...
随机推荐
- python小例子(三)
1.提高Python运行速度的方法 (1)使用生成器,节约大量内存: (2)循环代码优化,避免过多重复代码的执行: (3)核心模块使用cpython,pypy等: (4)多进程,多线程,协程: (5) ...
- TCP/IP和Socket开发经验分享
当前与网络相关的业务主要是基于tcp/ip或http,熟悉j2ee的同学一定会对http场景下的开发比较了解.但是,精通tcp/ip以及如何构建一个直接基于tcp/ip层通讯的知识却不太多见.恰巧,最 ...
- python小练习--模拟用户登录,(3次重试机会,登录成功展示登录账号密码)
知识点使用:1.格式化输出的两种方法---% .formate 2.while循环的使用,及跳出循环的两种方法---break(跳出循环体).continue(结束本次循环,继续下次循环) 3.if条 ...
- 用GitLab Runner自动部署GitBook并不难
相信很多程序员喜欢用 GitBook 来写电子书.教程或者博客,看了不少文章,貌似都缺少说明如何将 GitBook 部署到版本库,并自动在服务器上 build,然后将生成的静态网站部署到云服务器上. ...
- vue设置页面标题
使用vue-wechat-title插件对页面标题进行设置 1.安装模块 命令行窗口中运行npm install vue-wechat-title --save PS.如果程序正在运行,ctrl ...
- Weblogic wls9_async_response 反序列化远程命令执行漏洞(CVE-2019-2725)复现
一. 漏洞简介 漏洞编号和级别 CVE编号:CVE-2019-2725,危险级别:高危,CVSS分值:9.8. CNVD 编号:CNVD-C-2019-48814,CNVD对该漏洞的综合评级为 ...
- 一道国外前端面试题引发的Coding...
刚刚看到CSDN微信公众号一篇文章,关于国外程序员面试前端遇到的一道测试题,有点意思,遂写了下代码,并记录一下~ 题目是这样的: ['Tokyo', 'London', 'Rome', 'Donlon ...
- [考试反思]1109csp-s模拟测试107:低能
诶一看这不是水题AK场吗?然后80分钟就拿到了285分. 然后,对拍?还是卡T2常数?还是想T2正解? 于是上述三项我依次进行了. 前两项让我的分数丝毫不变但是吃掉了我一个多小时的时间. 卡常卡的也不 ...
- CSPS模拟 48
??? 分数越来越低??? T1 String Master 题目过于毒瘤,以至于我都不想改 T2 Tourist Attractions 稍微转化题意是求无向图的三角形个数 由于坚信bitset不是 ...
- MySQL 语句执行过程详解
MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 My ...