Java File类的学习

File类的概述

java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。

File类部分构造方法

/**
 * 从父抽象路径名和子路径名字符串创建新的File实例。
 */
private File(String child, File parent) {
    ...
}

/**
 * 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
 */
public File(String pathname) {
    ...
}

路径分隔符和默认名称分隔符

// 依赖于系统的默认名称分隔符字符。此字段初始化为包含系统属性<code>file.separator</code>值的第一个字符。
// 在UNIX系统上,此字段的值为<code>‘/‘</code>;在Microsoft Windows系统上,此字段的值为<code>‘\‘</code>。
public static final char separatorChar = fs.getSeparator();
// 依赖于系统的默认名称分隔符字符,为方便起见表示为字符串。
public static final String separator = "" + separatorChar;
// 依赖于系统的路径分隔符字符。此字段初始化为包含系统属性<code>path.separator</code>值的第一个字符。
// 此字符用于将文件名按<em>路径列表指定的文件序列分隔开。在UNIX系统上,此字符为<code>‘:‘</code>;
// 在Microsoft Windows系统上,此字符为<code>‘;‘</code>。
public static final char pathSeparatorChar = fs.getPathSeparator();
// 依赖于系统的路径分隔符字符,为了方便起见表示为字符串
public static final String pathSeparator = "" + pathSeparatorChar;

下面以基于Unix系统的macOS系统为例

依赖于系统的默认名称分隔符

import java.io.File;

public class Demo01Separator {
    public static void main(String[] args) {
        // 依赖于系统的默认名称分隔符字符。
        char separatorChar = File.separatorChar;
        System.out.println("系统的默认名称分隔符字符是‘" + separatorChar + "‘");

        // 依赖于系统的默认名称分隔符字符,为方便起见表示为字符串。
        String separatorString = File.separator;
        System.out.println("系统的默认名称分隔符字符是‘" + separatorString + "‘");
    }
}
控制台输出:
系统的默认名称分隔符字符是‘/‘
系统的默认名称分隔符字符是‘/‘

依赖于系统的路径分隔符

import java.io.File;

public class Demo01PathSeparator {
    public static void main(String[] args) {
        // 依赖于系统的路径分隔符字符
        char pathSeparatorChar = File.pathSeparatorChar;
        System.out.println("依赖于系统的路径分隔符字符是‘" + pathSeparatorChar + "‘");

        // 依赖于系统的路径分隔符字符,为了方便起见表示为字符串
        String pathSeparatorString = File.pathSeparator;
        System.out.println("依赖于系统的路径分隔符字符是‘" + pathSeparatorString + "‘");
    }
}
控制台输出:
依赖于系统的路径分隔符字符是‘:‘
依赖于系统的路径分隔符字符是‘:‘

程序很多时候都是跨平台的,所以不要把路径写死,可以使用以上几个静态成员变量获取分隔符

File类的部分构造方法的使用

public class Demo02File {
    public static void main(String[] args) {
        // 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
        File file1 = new File("~/IdeaProjects/Study/src/view/study/demo27/Demo02File.java");
        System.out.println(file1);

        // 从父抽象路径名和子路径名字符串创建新的File实例。
        File file2 = new File("~/IdeaProjects/Study/", "/src/view/study/demo27/Demo02File.java");
        System.out.println(file2);
    }
}
 
控制台输出:
~/IdeaProjects/Study/src/view/study/demo27/Demo02File.java
~/IdeaProjects/Study/src/view/study/demo27/Demo02File.java

File类获取功能的常用方法

public String getAbsolutePath():返回此File的绝对路径名字符串。

public String getPath():将此File转换为路径名字符串。

public String getName():返回由此File表示的文件或目录的名称。

public long length():返回由此File表示的文件的长度。

这几个方法的使用

import java.io.File;

public class Demo01FileMethod {
    public static void main(String[] args) {
        File file = new File("~/IdeaProjects/Study/src/view/study/demo27/Demo01FileMethod.java");

        // 返回此File的绝对路径名字符串。
        String fileAbsolutePath = file.getAbsolutePath();

        // 将此File转换为路径名字符串。
        String filePath = file.getPath();

        // 返回由此File表示的文件或目录的名称。
        String fileName = file.getName();

        // 返回由此File表示的文件的长度。
        long fileLength = file.length();

        System.out.println("绝对路径:" + fileAbsolutePath);
        System.out.println("路径名字符串:" + filePath);
        System.out.println("文件或目录的名称:" + fileName);
        System.out.println("文件的长度:" + fileLength);
    }
}
控制台输出:
绝对路径:/Users/liyihua/IdeaProjects/Study/~/IdeaProjects/Study/src/view/study/demo27/Demo01FileMethod.java
路径名字符串:~/IdeaProjects/Study/src/view/study/demo27/Demo01FileMethod.java
文件或目录的名称:Demo01FileMethod.java
文件的长度:0

文件路径不存在,返回文件的长度为0

File类判断功能的常用方法

public boolean exists():此File表示的文件或目录是否实际存在。

public boolean isDirectory():此File表示的是否为目录。

public boolean isFile():此File表示的是否为文件。

这几个方法的使用

import java.io.File;

public class Demo02FileMethod {
    public static void main(String[] args) {
        File file = new File("/Users/liyihua/IdeaProjects/Study/src/view/study/demo27");

        boolean exiFile = file.exists();
        boolean isD = file.isDirectory();
        boolean isF = file.isFile();

        System.out.println("文件或目录是否实际存在:" + exiFile);
        System.out.println("是否为目录:" + isD);
        System.out.println("是否为文件:" + isF);
    }
}
控制台输出:
文件或目录是否实际存在:true
是否为目录:true
是否为文件:false

判断是否为文件或是否为目录的时候,路径必须存在,否则都返回false(计算机中只有文件和目录)

File类创建删除功能的常用方法

public boolean createNewFile():当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。

public boolean delete():删除由此File表示的文件或目录。

public boolean mkdir():创建由此File表示的目录。

public boolean mkdirs():创建由此File表示的目录,包括任何必需但不存在的父目录。

创建一个新的空文件

import java.io.File;
import java.io.IOException;

public class Demo03FileMethod {
    public static void main(String[] args) throws IOException {
        File file = new File("/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/test.txt");

        file.createNewFile();
    }
}
所在的目录下创建了一个文件——test.txt

删除一个文件或目录

import java.io.File;
import java.io.IOException;

public class Demo04FileMethod {
    public static void main(String[] args) throws IOException {
        File file = new File("/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/test.txt");

        file.delete();
    }
}
所在的目录下的一个文件(test.txt)被删除

创建一个目录

import java.io.File;
import java.io.IOException;

public class Demo05FileMethod {
    public static void main(String[] args) throws IOException {
        File file = new File("/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/test");

        file.mkdir();
    }
}
所在的目录下创建了一个目录——test

创建一个目录集(父子爷孙目录)

import java.io.File;
import java.io.IOException;

public class Demo06FileMethod {
    public static void main(String[] args) throws IOException {
        File file = new File("/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/t1/t2/t3");

        file.mkdirs();
    }
}
在目录“/Users/liyihua/IdeaProjects/Study/src/view/study/demo27”下创建了目录 /t1/t2/t3

File类目录的遍历功能

public String[] 1ist():返回一个String数组,表示该File目录中的所有子文件或目录。
public File[] listFiles():返回一个File数组,表示该File目录中的所有的子文件或目录。

这两个方法的使用

import java.io.File;

public class Demo07FileMethod {
    public static void main(String[] args) {
        File file = new File("/Users/liyihua/IdeaProjects/Study/src/view/study/demo27");

        // 返回一个String数组
        String[] stringList = file.list();
        // 返回一个File数组
        File[] fileList = file.listFiles();

        // 遍历数组
        for (String s : stringList) {
            System.out.println(s);
        }
        System.out.println("\n\n");
        for (File f : fileList) {
            System.out.println(f);
        }
    }
}
控制台输出:
Demo01PathSeparator.java
Demo01File.java
Demo01FileMethod.java
Demo06FileMethod.java
Demo07FileMethod.java
Demo02FileMethod.java
了解File类
Demo05FileMethod.java
Demo02File.java
Demo04FileMethod.java
Demo01Separator.java
Demo03FileMethod.java

/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/Demo01PathSeparator.java
/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/Demo01File.java
/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/Demo01FileMethod.java
/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/Demo06FileMethod.java
/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/Demo07FileMethod.java
/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/Demo02FileMethod.java
/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/了解File类
/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/Demo05FileMethod.java
/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/Demo02File.java
/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/Demo04FileMethod.java
/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/Demo01Separator.java
/Users/liyihua/IdeaProjects/Study/src/view/study/demo27/Demo03FileMethod.java

原文地址:https://www.cnblogs.com/liyihua/p/12247345.html

时间: 2024-08-08 17:46:01

Java File类的学习的相关文章

JAVA File类 分析(三)

前面两篇与大家一起研究了unix下的文件系统,本篇将和大家一起分析 文件的属性和文件夹. ok,废话不说,先来段代码 #include <stdio.h> #include <sys/types.h> #include <dirent.h> void do_ls(char[]); void main(int ac,char *av[]){ if(ac==1) do_ls("."); else{ while(--ac){ printf("%s

java File类

今天我要总结一下java File类.这个是一个很重要的类. 首先是我画的思维导图. 还写了一些自己写的代码. /** * Date : 2017/6/24 * Author : Hsj * Description : */ public class Demo { /** * File(pathname)表示文件或文件夹路径 * File(String parent,child); * File(File parent,child); */ @Test public void fun() { /

java File类的基本操作

(如果有谁想要这个软件的话,在评论中留一个邮箱吧.) 前几天好几次看到有朋友晒出玩2048刷高分的截图,我就想我能不能也做一个2048呢?仔细想了想2048游戏的规律,发现其实逻辑上很简单,也不用研究什么算法,于是我马上觉得我可以很快写出来.当天下午我就用了四个小时完成了2048的基本功能.几天后觉得不满足,于是给我的2048加了存档.读档和后退一步的功能,这样就更好刷分了呢! 使用语言:C#: 平台:Visual Studio 2012 Win Form. 如何完成2048的基本功能呢?204

Java File类总结和FileUtils类

Java File类总结和FileUtils类 文件存在和类型判断 创建出File类的对象并不代表该路径下有此文件或目录. 用public boolean exists()可以判断文件是否存在. File类的对象可以是目录或者文件. 如果是目录,public boolean isDirectory()返回true: 如果是文件(非目录则是文件),public boolean isFile()返回true: 但是注意需要先判断文件是否存在,如果文件不存在,上面两个方法都返回false,即不存在的F

Java File类学习 &lt;二&gt;

1.File类提供了删除文件或一个空文件夹的方法,并提供了判断文件或者文件夹是否存在,判断是否为文件.文件夹.是否为隐藏文件.以及是否为绝对路径的方法 package com.fish.file; import java.io.File; /* 删除: delete() 删除文件或一个空文件夹,如果是文件夹且不为空,则不能删除,成功返回true,失败返回false. deleteOnExit() 在虚拟机终止时,请求删除此抽象路径名表示的文件或目录,保证程序异常时创建的临时文件也可以被删除 判断

Java File类学习笔记2:File类对象及常用操作方法

一. 文件.相对路径与绝对路径 1.文件 (1)标准文件:就像图片,音乐文件等. (2)目录文件:也就是平常所说的文件夹. (3)虚拟内存文件:系统在运行程序时生成的临时性文件. 2.文件的路径 (1)相对路径:相对于某一文件的路径,形象地说是把两文件的绝对路径相同的部分砍掉,剩下的就是相对路径 如: A文件是"D:\MyDocuments\StudySample\src\cn\xmh", B文件是"D:\MyDocuments\StudySample\src\netjava

java File类的常见用法

File类简单用法! [java] view plain copy print? [java] view plain copy print? import java.io.File; import java.io.IOException; public class TestFile { public void createFile(String path){ File file=new File(path); if(!file.exists()){//判断文件是否存在 try { file.cr

java——File类的用法整理

参考:http://www.codeceo.com/article/java-file-class.html 构造函数 public class FileDemo { public static void main(String[] args){ //构造函数File(String pathname) File f1 =new File("c:\\abc\\1.txt"); //File(String parent,String child) File f2 =new File(&qu

Java File类(转载笔记)

四个 File类定义.. 1.File类是java.io包中唯一能够代表磁盘文件本身的对象,提供了对"文件"或者"目录"的操作. 2.File类定义了一些与平台无关的方法进行文件操作,如建立.删除.查询.重命名等. 3.可以用它来表示某个文件的名字,也可以用它来表示目录里一组文件的名字. 4.在File类中包含了大部分和文件操作的功能方法,该类的对象可以代表一个具体的文件或文件夹 File类构造函数 public File(String path) 如果path是实