IO系列之使用File类操作文件

1. File类介绍
  • 五个核心类:File、InputStream、OutputStream、Reader、Writer
  • 一个核心接口:Serializable

在整个java.io包里面,File类是唯一一个与文件本身操作有关的类,但是不涉及具体内容。文件本身是指文件的创建、删除等操作

2. 通过构造方法设置文件路径
  • public File(String pathname)

pathname为全路径

  • public File(String parent, String child)

parent 父路径

child 子路径

3. File类常用操作

创建文件

public boolean createNewFile()

删除文件

public boolean delete()

判断文件是否存在

public boolean exists()

代码示例

        //设置文件路径
        File file = new File("E:\\test.txt");
        try {
            //如果文件存在则删除
            if(file.exists()){
                file.delete();
            }else {
                //如果文件不存在则创建
                file.createNewFile();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

File.separator 文件分隔符

//设置文件路径
File file = new File("E:"+File.separator+"test.txt");

获取父路径

public File getParentFile()

创建文件夹

public boolean mkdir()

创建多级文件夹

public boolean mkdirs()

代码示例

 //设置文件路径
 File file = new File("E:"+File.separator+"demo"+File.separator+"demo2"+File.separator+"test.txt");
 
 //如果父路径不存在则创建父路径
 if(!file.getParentFile().exists()){
// file.getParentFile().mkdir();
 //创建多级目录
file.getParentFile().mkdirs();
}

获取文件大小

public long length()

判断是否是文件

public boolean isFile()

判断是否是文件夹

public boolean isDirectory()

获取文件名

public String getName()

获取文件路径

public String getPath()

获取上次修改时间

public long lastModified() 返回的是时间的毫秒数

获取绝对路径

public String getAbsolutePath()

判断是否是绝对路径

public boolean isAbsolute()

使用示例

 File file = new File("E:"+File.separator+"demo"+File.separator+"1.txt");
//判断是否是文件
if(file.isFile()){
    System.out.println("是文件");
}
//判断是否是目录
if(file.getParentFile().isDirectory()){
System.out.println("父目录是文件夹");
}
System.out.println("文件名是:"+file.getName());
System.out.println("文件路径:"+file.getPath());
//获取文件大小
long length = file.length();
 System.out.println("文件大小:"+(new BigDecimal(length).
divide(new BigDecimal(1024*1024),2,BigDecimal.ROUND_HALF_UP))+"M");
//获取文件上次修改日期
Date modifyTime = new Date(file.lastModified()); System.out.println("文件的最近修改日期是:"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(modifyTime));

获取目录的所有文件名

public String[] list()

获取目录下的所有文件

public File[] listFiles()

示例代码

 File file = new File("E:"+File.separator+"demo");
String[] fileNames = file.list();
for(String fileName : fileNames){
   System.out.println(fileName);
}

//列出子目录
File[] files = file.listFiles();
for(File file1 : files){
    System.out.println(file1.getName()+"  "+(file1.isDirectory()?"文件夹":"文件"));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值