java中的file类

一、File类概述
(1) java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关

(2)File类中涉及到关于文件或文件目录的创建、删除、重命名、修改时间、文件大小等方法,并未涉及到写入或读取文件内容的操作。如果需要读取或写入文件内容,必须使用IO流来完成。

(3) 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。

(4) File对象可以作为参数传递给流的构造器,指明读取或写入的"终点"。

二、File类的使用
1. 绝对路径 vs 相对路径
(1)绝对路径:是一个固定的路径,从盘符开始
(2)相对路径:是相对于某个位置开始

main()方法中的相对路径是相对于当前工程
单元测试方法中的相对路径是相对于当前模块
2. 路径分隔符
(1) 路径中的每级目录之间用一个路径分隔符隔开。

(2)路径分隔符和系统有关:windows和DOS系统默认使用"\"来表示UNIX和URL使用"/"来表示

(3) Java程序支持跨平台运行,因此路径分隔符要慎用。
为了解决这个隐患,File类提供了一个常量:
public static final String separator:根据操作系统,动态的提供分隔符。

在这里常用的是前三个:

@Test
 public void test1(){
    //File(String pathname)构造器
    File file1 = new File("hello.txt");//相对于当前module
    File file2 = new File    ("D:\\ProgramFiles\\JAVA\\workspace_idea\\JavaSenior\\com.java.io\\hello2.txt");//绝对路径
    System.out.println("file1 = " + file1);
    System.out.println("file2 = " + file2);
 
     //File(String parent, String child) 构造器
    File file3 = new File("D:\\Program Files","JAVA");
    System.out.println("file3 = " + file3);
 
    //File(File parent, String child)构造器
    File file4 = new File(file3,"hi.txt");
    System.out.println("file4 = " + file4);

}

 静态成员变量

静态成员变量描述
public static String pathSeparator系统中多个路径的分隔符 windows;
public static String separator系统中一个路径中多个名称之间的分隔符号 windows\

 常用方法

 获取功能

public String getAbsolutePath()    获取绝对路径
public String getPath()    获取路径
public String getName()    获取名称
public String getParent()    获取上层文件目录路径。若无,返回null
public long length()    获取文件长度(即:字节数)。不能获取目录的长度。
public long lastModified()    获取最后一次的修改时间,毫秒值
public String[] list()    获取指定目录下的所有文件或者文件目录的字符串数组
public File[] listFiles()    获取指定目录下的所有文件或者文件目录的File对象数组

 代码段演示

    @Test
    public void test2(){
        File file1 = new File("hello.txt");
        File file2 = new File("d:\\io\\hi.txt");

        System.out.println(file1.getAbsolutePath());
        System.out.println(file1.getPath());
        System.out.println(file1.getName());
        System.out.println(file1.getParent());
        System.out.println(file1.length());
        System.out.println(new Date(file1.lastModified()));

        System.out.println();

        System.out.println(file2.getAbsolutePath());
        System.out.println(file2.getPath());
        System.out.println(file2.getName());
        System.out.println(file2.getParent());
        System.out.println(file2.length());
        System.out.println(file2.lastModified());
    }
    @Test
    public void test3(){
        File file = new File("D:\\workspace_idea1\\JavaSenior");

        String[] list = file.list();
        for(String s : list){
            System.out.println(s);
        }

        System.out.println();

        File[] files = file.listFiles();
        for(File f : files){
            System.out.println(f);
        }

    }

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值