Java 中的 File类详情

目录
  • 一、File类简单介绍
  • 二、 路径的分类
  • 三、 构造方法
  • 四、 成员方法

一、File类简单介绍

为什么要学习File类呢,他的作用又是什么呢?

IO流操作中大部分都是对文件进行操作,所以Java就提供了一个File类供我们来操作文件,它是以抽象的方式代表文件名和目录路径名,该类主要是对文件或目录的创建,文件的查找,删除等。对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已。它可以是存在的,也可以是不存在的。将来是要通过具体的操作把这个路径的内容转换为具体存在的。

二、 路径的分类

  • 绝对路径:带有盘符号的路径
  • 相对路径:没有带盘符号的路径,默认在根目录下

三、 构造方法

  • File(String pathname):根据一个路径得到File对象
  • File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
  • File(File parent, String child):根据一个父File对象和子文件/目录得到File对象

示例代码:

package org.westos.demo2;

import java.io.File;

public class MyTest2 {
    public static void main(String[] args){
        //通过路径得到对象
        File file = new File("E:\\aaa\\");
        //通过父类路径和子类名得到对象
        File file1 = new File("E:\\", "aaa");
        //通过父类对象和子类名得到对象
        File file2 = new File("E:\\");
        File file3 = new File(file2, "aaa");
    }
}

四、 成员方法

创建功能:

public boolean createNewFile()当具有该名称的文件不存在时,创建一个由该抽象路径名命名的新空文件。
public boolean mkdir()创建由此抽象路径名命名的目录。 public boolean
mkdirs()创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。

示例代码:

public class FileDemo02 {
    public static void main(String[] args) throws IOException {
        //需求1:我要在E:\\itcast目录下创建一个文件java.txt
        File f1 = new File("E:\\itcast\\java.txt");
        System.out.println(f1.createNewFile());
        System.out.println("--------");

        //需求2:我要在E:\\itcast目录下创建一个目录JavaSE
        File f2 = new File("E:\\itcast\\JavaSE");
        System.out.println(f2.mkdir());
        System.out.println("--------");

        //需求3:我要在E:\\itcast目录下创建一个多级目录JavaWEB\\HTML
        File f3 = new File("E:\\itcast\\JavaWEB\\HTML");
//        System.out.println(f3.mkdir());
        System.out.println(f3.mkdirs());
        System.out.println("--------");

        //需求4:我要在E:\\itcast目录下创建一个文件javase.txt
        File f4 = new File("E:\\itcast\\javase.txt");
//        System.out.println(f4.mkdir());
        System.out.println(f4.createNewFile());
    }
}

删除功能:

public boolean delete() ;

注意:

  • 要删除一个文件夹,请注意该文件夹内不能包含文件或文件夹
  • java中删除不走回收站

示例代码:

public class FileDemo03 {
    public static void main(String[] args) throws IOException {
//        File f1 = new File("E:\\itcast\\java.txt");
        //需求1:在当前模块目录下创建java.txt文件
        File f1 = new File("myFile\\java.txt");
//        System.out.println(f1.createNewFile());

        //需求2:删除当前模块目录下的java.txt文件
        System.out.println(f1.delete());
        System.out.println("--------");

        //需求3:在当前模块目录下创建itcast目录
        File f2 = new File("myFile\\itcast");
//        System.out.println(f2.mkdir());

        //需求4:删除当前模块目录下的itcast目录
        System.out.println(f2.delete());
        System.out.println("--------");

        //需求5:在当前模块下创建一个目录itcast,然后在该目录下创建一个文件java.txt
        File f3 = new File("myFile\\itcast");
//        System.out.println(f3.mkdir());
        File f4 = new File("myFile\\itcast\\java.txt");
//        System.out.println(f4.createNewFile());

        //需求6:删除当前模块下的目录itcast
        System.out.println(f4.delete());
        System.out.println(f3.delete());
    }
}

重命名功能:

public boolean renameTo(File dest):如果路径名相同,就是改名;如果路径名不相同,就是改名并剪切

判断功能:

public boolean isDirectory():判断是否是文件夹
public boolean isFile():判断是否是文件
public boolean exists():判断文件或文件夹是否存在
public boolean canRead(): 判断是否可读
public boolean canWrite(): 判断是否可写
public boolean isHidden(): 判断文件或文件夹是否隐藏

示例代码:

public class FileDemo04 {
    public static void main(String[] args) {
        //创建一个File对象
        File f = new File("myFile\\java.txt");

//        public boolean isDirectory():测试此抽象路径名表示的File是否为目录
//        public boolean isFile():测试此抽象路径名表示的File是否为文件
//        public boolean exists():测试此抽象路径名表示的File是否存在
        System.out.println(f.isDirectory());
        System.out.println(f.isFile());
        System.out.println(f.exists());
      }
  }

获取功能:

基本获取功能:
public String getAbsolutePath():获取文件或文件夹的绝对路径
public String getPath():获取文件或文件夹的相对路径
public String getName():获取文件或文件夹名称
public long length():获取长度,字节数,可以获取文件的大小进行判断
public long lastModified():获取最后一次修改的时间,返回毫秒值,可以判断文件被修改过几次

高级获取功能:
public String[ ] list():获取目录下的所有文件或者文件夹的名称数组
public File[ ] listFiles():获取指定目录下的所有文件夹的File对象数组,返回的是File对象说明可以调用File的方法

示例代码:

public class FileDemo04 {
    public static void main(String[] args) {
        //创建一个File对象
        File f = new File("myFile\\java.txt");

//        public String getAbsolutePath():返回此抽象路径名的绝对路径名字符串
//        public String getPath():将此抽象路径名转换为路径名字符串
//        public String getName():返回由此抽象路径名表示的文件或目录的名称
        System.out.println(f.getAbsolutePath());
        System.out.println(f.getPath());
        System.out.println(f.getName());
        System.out.println("--------");

//        public String[] list():返回此抽象路径名表示的目录中的文件和目录的名称字符串数组
//        public File[] listFiles():返回此抽象路径名表示的目录中的文件和目录的File对象数组
        File f2 = new File("E:\\itcast");

        String[] strArray = f2.list();
        for(String str : strArray) {
            System.out.println(str);
        }
        System.out.println("--------");

        File[] fileArray = f2.listFiles();
        for(File file : fileArray) {
//            System.out.println(file);
//            System.out.println(file.getName());
            if(file.isFile()) {
                System.out.println(file.getName());
            }
        }
    }
}

文件过滤接口:

想获取的时候就满足条件,要实现文件过滤接口:public String[ ] listFiles(new FilenameFilter)

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

(0)

相关推荐

  • Java文件操作之IO流 File类的使用详解

    File类概述 File类能新建.删除.重命名文件和目录,但不能访问文件内容本身,如果需要访问文件内容本身,则需要使用后续的输入/输出流. 要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录. File对象可以作为参数传递给流的构造器. 常用构造器 ①public File(String pathname) 以pathname为路径创建File对象,可以是绝对路径或者相对路径,如果是相对路径,则默认相

  • Java中FileWriter类的常用方法说明

    FileWriter字符输出流 构造方法 public FileWriter(String fileName) throws IOException 根据给定的文件名构造一个 FileWriter 对象. fileName - 一个字符串,表示与系统有关的文件名. public FileWriter(String fileName,boolean append) throws IOException 根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象

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

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

  • Java File类的简单使用教程(创建、删除、遍历与判断是否存在等)

    前言 Java文件类以抽象的方式代表文件名和目录路径名.该类本身不能用来读数据或写数据,它主要用于磁盘上文件和目录的创建.文件的查找和文件的删除.做一些非读写方面的工作,比如看看文件是否存在.是否可读写及遍历文件目录等等.要想读写数据,必须和其它io流的类配合使用,比如FileInputStream.FileOutputStream等.File对象代表磁盘中实际存在的文件和目录,以下就通过一些简单的列子介绍File的基本使用. 这是整个File简单使用的代码: 1 package com.tia

  • Java如何通过File类方法删除指定文件夹中的全部文件

    前言 对delete的解说 那么问题来了!!! (②中的问题,怎么删除文件夹里所有文件,想必很多同学也和我一样懵,) 别着急(往下看) 要用到的方法 (递归思想) 如果文件夹里面还有文件夹,就继续往下找(可能不太官方,个人理解) 接下来 代码展示 方法一: package com.study; import java.io.File; import java.io.IOException; /** 1. 应用场景 2. delete删除只能删除空文件夹 和文件 3. 删除指定文件夹 */ pub

  • 深入了解Java I/O 之File类

    目录 File类 创建File文件 File文件基本操作 总结 File类 Java使用File类来表示计算机系统磁盘文件的对象类型.File类中提供了大量的方法,可以对文件进行增加.修改.删除.重命名等常规操作.File类的对象会村春文件自身的信息,例如文件在系统中的存储目录.文件大小.文件读写权限等. 创建File文件 File类中提供了以下几个构造方式来创建File对象. File(String pathname) File file=new File("d:/Test/file01.tx

  • java 通过 SmbFile 类操作共享文件夹的示例

    一.添加依赖 在pom.xml文件夹中添加如下的依赖就可以引用SmbFile类的jar包. <dependency> <groupId>jcifs</groupId> <artifactId>jcifs</artifactId> <version>1.3.17</version> </dependency> 二.读取文件 /** * 读取共享文件夹下的所有文件(文件夹)的名称 * @param remoteUr

  • Java File类 mkdir 不能创建多层目录的解决

    目录 Java File类 mkdir 不能创建多层目录 注意 mkdirs创建文件失败原因 解决 Java File类 mkdir 不能创建多层目录 File f = new File("/home/jp/Upload"); if ((!f.exists()) || (!f.isDirectory())) { boolean res = f.mkdir(); //这里创建不了多层文件夹 } 注意 在Java File类 的mkdir方法的实现中,不能同时创建多层目录,如果是多层,可以

  • 使用Java7的Files工具类和Path接口来访问文件的方法

    在日期的java版本中,都是通过File类来访问文件,但是File类的操作有限,不能利用特定文件系统的特性,性能也不高.在访问出错时,很多都是直接返回false,并没有给出异常信息.因此Java7新增了Files和Paths两个工具类来操作文件.Files类中包含了大量的静态方法来操作文件.Java7还引入了一个Path接口,它代表的是与平台无关的平台路径,关于它的用法,下面会做详细的介绍. Paths提供了两个方法用来获取Path对象, 1.get(URL url) 2.get(String

  • Java 中的 File类详情

    目录 一.File类简单介绍 二. 路径的分类 三. 构造方法 四. 成员方法 一.File类简单介绍 为什么要学习File类呢,他的作用又是什么呢? IO流操作中大部分都是对文件进行操作,所以Java就提供了一个File类供我们来操作文件,它是以抽象的方式代表文件名和目录路径名,该类主要是对文件或目录的创建,文件的查找,删除等.对于File而言,其封装的并不是一个真正存在的文件,仅仅是一个路径名而已.它可以是存在的,也可以是不存在的.将来是要通过具体的操作把这个路径的内容转换为具体存在的. 二

  • 基于Java中的StringTokenizer类详解(推荐)

    StringTokenizer是字符串分隔解析类型,属于:Java.util包. 1.StringTokenizer的构造函数 StringTokenizer(String str):构造一个用来解析str的StringTokenizer对象.java默认的分隔符是"空格"."制表符('\t')"."换行符('\n')"."回车符('\r')". StringTokenizer(String str,String delim)

  • 详解Java 中的嵌套类与内部类

    详解Java 中的嵌套类与内部类 在Java中,可以在一个类内部定义另一个类,这种类称为嵌套类(nested class).嵌套类有两种类型:静态嵌套类和非静态嵌套类.静态嵌套类较少使用,非静态嵌套类使用较多,也就是常说的内部类.其中内部类又分为三种类型: 1.在外部类中直接定义的内部类. 2.在函数中定义的内部类. 3.匿名内部类. 对于这几种类型的访问规则, 示例程序如下: package lxg; //定义外部类 public class OuterClass { //外部类静态成员变量

  • java 中使用匿名类直接new接口详解及实例代码

    java:使用匿名类直接new接口 java中的匿名类有一个倍儿神奇的用法,见下面代码示例: package contract; public interface ISay { void sayHello(); } 上面是一个简单的接口,下面是如何使用: package jimmy; import contract.ISay; public class Program { public static void main(String[] args) { ISay say = new ISay()

  • 浅谈java中为什么实体类需要实现序列化

    当客户端访问某个能开启会话功能的资源,web服务器就会创建一个HTTPSession对象,每个HTTPSession对象都会占用一定的内存,如果在同一个时间段内访问的用户太多,就会消耗大量的服务器内存,为了解决这个问题我们使用一种技术:session的持久化. 什么是session的持久化? web服务器会把暂时不活动的并且没有失效的HTTPSession对象转移到文件系统或数据库中储存,服务器要用时在把他们转载到内存. 把Session对象转移到文件系统或数据库中储存就需要用到序列化: jav

  • Java IO流 File类的常用API实例

    •File类 1.只用于表示文件(目录)的信息(名称.大小等),不能用于文件内容的访问. package cn.test; import java.io.File; import java.io.IOException; public class Demo16 { public static void main(String[] args) { File file = new File("F:\\javaio"); //文件(目录)是否存在 if(!file.exists()) { /

  • Java中的大数类简单实现

    Java中的大数类简单实现 Java中的大数还是挺好用,而且很方便,所以将其罗列如下,以备使用 import java.math.*; import java.util.*; //基本使用如下: x = in.nextBigInteger(); y = in.nextBigInteger(); System.out.println(x.add(y)); //x+y; System.out.println(x.subtract(y)); //x-y; System.out.println(x.mu

  • 详解java中的Collections类

    一般来说课本上的数据结构包括数组.单链表.堆栈.树.图.我这里所指的数据结构,是一个怎么表示一个对象的问题,有时候,单单一个变量声明不堪大用,比如int,String,double甚至一维数组.二维数组无法完全表达你要表达的东西,而定义一个类Class有太过麻烦,这时候,你可以考虑一下用Java中的Collections类.使用Collections类,必须在文件头声明import java.util.*; 一.动态.有序.可变大小的一维数组Vector与ArrayList  Collectio

  • 浅谈java中六大时间类的使用和区别

    java.util.Date java.sql.Date java.sql.Time java.sql.Timestamp java.text.SimpleDateFormat java.util.Calendar java.util.Date日期格式为:年月日时分秒 java.sql.Date日期格式为:年月日 java.sql.Time日期格式为:时分秒 java.sql.Timestamp日期格式为:年月日时分秒纳秒(毫微秒) 从数据库中取出来的日期一般都用getTimestamp()方法

随机推荐