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 dirname=new ArrayList();//用于保存目录
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)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值