一步步带你入门Java中File类

目录
  • 概述
  • 构造方法
    • 基本介绍
    • 代码示例
  • 常用方法
    • 获取文件和目录的基本信息
    • 创建和删除功能
    • 目录遍历功能
    • 补充:移动文件
  • 总结

概述

要学习Java中的File类,首先我们要知道,在Java的API中File类的定义,即文件和目录路径的抽象表现形式,不是文件本身。所以在File类中,所涉及到的操作都只是关于文件名称和目录路径的,而不是文件内容,如果想对文件内容进行操作,还得需要学习I/O流(输入/输出流)。

构造方法

基本介绍

只有构造了File类,我们后面才能对它进行操作。对于File类的构造下面介绍三种方法:
抽象表示的文件和目录的路径名:

  • public File(String pathname) :通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
  • public File(String parent, String child) :从父路径名字符串和子路径名字符串创建新的 File实例。
  • public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的 File实例。

第一个用的比较多,后面两个用的比较少

代码示例

import java.io.File;

public class FileDemo1 {
    public static void main(String[] args) {

        //public File(String pathname)
        String pathname1 = "F:\\test1.txt";
        File file1 = new File(pathname1);

        //public File(String pathname)
        String pathname2 = "F:\\test2\\test1.txt";
        File file2 = new File(pathname2);

        //下面用的少

        //public File(String parent, String child)
        String parent = "F:\\test3";
        String child = "test1.txt";
        File file3 = new File(parent,child);

        //public File(File parent, String child)
        File parentDir = new File("F:\\test");
        String child1 = "test2.txt";
        File file4 = new File(parentDir,child1);

    }
}

常用方法

File类的操作还是非常重要的,所以它的常用方法有很多个,为了方便记忆,我把它分为:

  • 获取文件和目录的基本信息
  • 判断功能
  • 创建和删除功能
  • 目录遍历功能

下面对这些方法分别进行介绍,并举例说明

获取文件和目录的基本信息

  • public String getName() :返回由此File表示的文件或目录的名称。
  • public String getPath() :将此File转换为路径名字符串。
  • public String getParent() :获得父级路径
  • public String getAbsolutePath() :返回此File的绝对路径名字符串

代码示例

import java.io.File;

public class FileDemo2 {
    public static void main(String[] args) {

        File file = new File("F:\\test1\\test2\\text.txt");

        //将此File转换为路径名字符串。
        System.out.println("文件路径:"+ file.getPath());
        //返回由此File表示的文件或目录的名称
        System.out.println("文件名称:"+ file.getName());
        //获得父级路径
        System.out.println("获得父级路径"+ file.getParent());
        //返回此File的绝对路径名字符串
        System.out.println("绝对路径名称" + file.getAbsolutePath());
    }
}

判断功能

  • public boolean exists() :此File表示的文件或目录是否实际存在。
  • public boolean isDirectory() :此File表示的是否为目录。
  • public boolean isFile() :此File表示的是否为文件。
  • public isAbsolute() :判断File对象对应的文件或目录是否是绝对路径
  • public boolean canRead() :判断File对象对应的文件或目录是否可读
  • public boolean canWrite() :判断File对象对应的文件或目录是否可写
  • public boolean isHidden() :判断File对象对应的文件或目录是否是否隐藏

如果文件或目录不存在,那么exists()、isFile()和isDirectory()都是返回true

代码示例

import java.io.File;

public class FileDemo3 {

    public static void main(String[] args) {
        File file1 = new File("F:\\test\\test1\\test2.txt");
        File file2 = new File("F:\\test");

        //此File表示的文件或目录是否实际存在
        boolean exists1 = file1.exists();
        boolean exists2 = file2.exists();
        System.out.println(exists1);
        System.out.println(exists2);

        //此File表示的是否为目录
        boolean directory1 = file1.isDirectory();
        boolean directory2 = file2.isDirectory();
        System.out.println(directory1);
        System.out.println(directory2);

        //此File表示的是否为文件
        boolean file1File = file1.isFile();
        boolean file2File = file2.isFile();
        System.out.println(file1File);
        System.out.println(file2File);

        //判断File对象对应的文件或目录是否是绝对路径
        boolean absolute = file1.isAbsolute();
        System.out.println(absolute);

        //判断File对象对应的文件或目录是否可读
        boolean canRead = file1.canRead();
        System.out.println(canRead);

        //判断File对象对应的文件或目录是否可写
        boolean canWrite = file1.canWrite();
        System.out.println(canWrite);

        //判断File对象对应的文件或目录是否是否隐藏
        boolean hidden = file2.isHidden();
        System.out.println(hidden);
    }
}

创建和删除功能

  • public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
  • public boolean delete() :删除由此File表示的文件或目录。只能删除空目录。
  • public boolean mkdir() :创建由此File表示的目录。
  • public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录

API中说明:delete方法,如果此File表示目录,则目录必须为空才能删除。

代码示例

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

public class FileDemo4 {
    public static void main(String[] args) throws IOException {
        //创建文件
        File file1 = new File("test.txt");
        System.out.println("是否存在:"+ file1.exists());//false
        System.out.println("是否创建"+ file1.createNewFile());//需要抛出异常
        System.out.println("是否存在:"+ file1.exists()); //true

        //创建目录(单个)
        File file2 = new File("F:\\test");
        System.out.println("是否存在:"+ file2.exists());//false
        System.out.println("是否创建"+ file2.mkdir());
        System.out.println("是否存在:"+ file2.exists()); //true

        //创建多级目录
        File file3 = new File("F:\\test1\\test2");
        System.out.println("是否存在:"+ file3.exists());//false
        System.out.println("是否创建"+ file3.mkdirs());
        System.out.println("是否存在:"+ file3.exists()); //true

        //文件的删除
        System.out.println(file1.delete());

        //目录的删除
        System.out.println(file2.delete());
        System.out.println(file3.delete());//只能删除一级

    }
}

目录遍历功能

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

调用listFiles方法的File对象,表示的必须是实际存在的目录,否则返回null,无法进行遍历。

代码示例

import org.junit.Test;

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

public class FileDemo5 {
    public static void main(String[] args) {
        File dir = new File("F:\\test");
        dir.mkdirs();
        System.out.println(dir.exists());
        //File dir1 = new File("F:\\test");

        //获取当前目录下的文件及文件夹的名称
        String[] names = dir.list();
        //遍历
        for(String name : names){
            System.out.println(name);
        }

        //获取当前目录下的文件以及文件夹对象,只要拿到了文件对象,那么就可以获取更多信息
        File[] files = dir.listFiles();
        for(File file : files){
            System.out.println(file);
        }
    }
}

但对于多级目录的遍历,我们需要使用递归方法

/*
多级目录的打印。遍历之前,无从知道到底有多少级目录,所以我们可以使用递归实现
 */

import java.io.File;

public class FileDemo6 {
    public static void main(String[] args) {
        File dir = new File("F:\\test1");
        listSubFiles(dir);

    }

    private static void listSubFiles(File dir) {
        if(dir != null && dir.isDirectory()){
            File[] listFiles = dir.listFiles();
            if(dir != null){
                for(File sub : listFiles){
                    listSubFiles(sub);//递归调用
                }
            }
        }
        System.out.println(dir);
    }
}

补充:移动文件

public class Test5 {
    public static void main(String[] args){
        File f1 = new File("d:\\");
        moveFile(f1);
    }
public static void moveFile(File dir){
    File[] files=dir.listFiles();
    for(File file:files){
        if(file.isDirectory())
            moveFile(file);
        else{
            if(file.getName().endsWith(".java"))
                file.renameTo(new File("c:\\jad\\"+
            file.getName().substring(0,file.getName().lastIndexOf('.'))+".jad"));
            }
        }
    }
}

总结

到此这篇关于Java中File类的文章就介绍到这了,更多相关Java中File类内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Java中File类中常用方法详解

    java.io包下的File类用于描述和创建一个文件或文件夹对象,只能对文件或文件夹做一些简单操作,不能修改文件的内容,功能比较有限.下面是对于File类中常用方法的程序演示. [1] 演示程序一 package pack01; import java.io.*; import java.sql.Date; public class FileTest { public static void main(String[] args) { File file1 = new File("d:/TEST

  • java中File类的构造函数及其方法

    1.IO流(Input Output) IO流技术主要的作用是解决设备与设备之间的数据传输问题,比如:硬盘的数据--读取到-->内存中 内存的数据--读取到-->硬盘中 键盘上的数据--读取到-->内存中 2.IO流技术的运用场景 导出报表.上传大头照.下载.解析xml文件.....等等 (数据保存到硬盘,该数据可以做到永久性保存.数据一般以文件的形式保存到硬盘上.sun使用一个File类来描述文件或者文件夹) 3.File类的构造函数(方法) File(String pathname)

  • java中File类应用遍历文件夹下所有文件

    本文要求遍历指定文件夹下的所有文件,包括子文件夹下的文件,供大家参考,具体内容如下 代码: package 遍历文件夹所有文件; import java.io.File; public class Test { public static void main(String[] args){ File file=new File("D:\\tcb\\周总结"); filesDirs(file); } //使用递归遍历文件夹及子文件夹中文件 public static void files

  • java中File类的使用方法

    构造函数 复制代码 代码如下: 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("c:\\a

  • java File类的基本使用方法总结

    Java IO中File的使用是比较频繁的,在文件的上传和删除中都会用到的.比如我们在写管理系统的时候有可能会用到图片的上传,和删除.那么我们就会用到Java的 File来处理. Java中File的基本使用创建和删除文件: public class FileDemo { public static void main(String[] args) { File f=new File("d:"+File.separator+"io.txt"); //File.sep

  • java中表示一个文件的File类型详解

    前言 从本篇文章开始,我们将开启对 Java IO 系统的学习,本质上就是对文件的读写操作,听上去简单,其实并不容易.Java 的 IO 系统一直在完善和改进,设计了大量的类,也只有理解了这些类型被设计出来的意义以及各自的应用场景,才能提升文件 IO 的理解. 那么,第一步就是要解决如何表示一个文件的问题,Java 世界中「万物皆对象」,如何将一个实际磁盘文件或目录对应到一个 Java 对象则是我们首要的问题. Java 中使用 File 来抽象一个文件,无论是普通文件或是目录,都可对应于一个

  • 详谈java中File类getPath()、getAbsolutePath()、getCanonical的区别

    简单看一下描述,例子最重要. 1.getPath(): 返回定义时的路径,(就是你写什么路径,他就返回什么路径) 2.getAbsolutePath(): 返回绝对路径,但不会处理"."和".."的情况 3.getCanonicalPath(): 返回的是规范化的绝对路径,相当于将getAbsolutePath()中的"."和".."解析成对应的正确的路径 第一个例子:(使用:".\\src\\test.txt&qu

  • java开发之File类详细使用方法介绍

    File类简介 在 Java 中,File 类是 java.io 包中唯一代表磁盘文件本身的对象.File 类定义了一些与平台无关的方法来操作文件,File类主要用来获取或处理与磁盘文件相关的信息,像文件名. 文件路径.访问权限和修改日期等,还可以浏览子目录层次结构. File 类表示处理文件和文件系统的相关信息.也就是说,File 类不具有从文件读取信息和向文件写入信息的功能,它仅描述文件本身的属性. File类的相关方法 1.构造方法 File(String pathname) 通过将给定路

  • Java File类的详解及简单实例

    Java File类的详解及简单实例 1. File():构造函数,一般是依据文件所在的指定位置来创建文件对象.  CanWrite():返回文件是否可写. CanRead():返回文件是否可读. CompareTo(File pathname):检查指定文件路径间的顺序. Delet():从文件系统内删除该文件. DeleteOnExit():程序顺利结束时从系统中删除文件. Equals(Object obj):检查特定对象的路径名是否相等. Exists():判断文件夹是否存在. GetA

  • 一步步带你入门Java中File类

    目录 概述 构造方法 基本介绍 代码示例 常用方法 获取文件和目录的基本信息 创建和删除功能 目录遍历功能 补充:移动文件 总结 概述 要学习Java中的File类,首先我们要知道,在Java的API中File类的定义,即文件和目录路径的抽象表现形式,不是文件本身.所以在File类中,所涉及到的操作都只是关于文件名称和目录路径的,而不是文件内容,如果想对文件内容进行操作,还得需要学习I/O流(输入/输出流). 构造方法 基本介绍 只有构造了File类,我们后面才能对它进行操作.对于File类的构

  • Java中File的实例详解

    Java中File的实例详解 File 代表文件或者目录的类 构造函数 File(File parent,String child)---代表了指定父目录下的指定的子文件或者子目录 File(String pathname)---代表了指定路径对应的文件或者目录对象 重要方法 创建 createNewFile()---只能用来创建文件,并且一次只能创建一个文件,要求文件存储的目录必须真实存在 mkdir()---只能用来创建目录,不能用来创建多层目录 mkdirs()---创建多层目录 删除 d

  • java 中file.encoding的设置详解

    java 中file.encoding的设置详解 昨天有人在讨论关于设置System的property,file.encoding 修改defaultcharset无效 Properties pps=System.getProperties(); pps.setProperty("file.encoding","ISO-8859-1"); 在java中,如果没有指定charset的时候,比如new String(byte[] bytes),都会调用Charset.d

  • Java中File文件操作类的基础用法

    前言 众所周知Java提供File类,让我们对文件进行操作,下面就来简单整理了一下File类的用法. 话不多说了,来一起看看详细的介绍吧 1.基本概念 File:文件和目录路径名的抽象表示形式,代表文件或者文件夹. 2.构造方法 // 根据parent抽象路径名和child路径名字符串创建一个新File实例 File(File parent, String child) // 通过将给定路径名字符串转换为抽象路径名来创建一个新File实例 File(String pathname) // 根据p

  • 浅谈Java中File文件的创建以及读写

    1.创建一个文件 @Test public void test6() throws IOException { File file1 = new File("C:\\IDEA\\h1.txt"); if(!file1.exists()){//文件不存在 file1.createNewFile(); System.out.println("创建成功"); }else{//文件存在 file1.delete(); System.out.println("删除成

随机推荐