栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

File文件

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

File文件

1、提问?

电脑里面使用的东西/文件分为几种?文件和文件夹。

文件夹里面放什么?文件:视频、音乐、软件、文档、excel表格、ppt....

在java程序里面?文件/文件夹=File。

2、File简介

概述:java.io.file类是文件和目录(文件夹)路径名的抽象表示,主要用于文件和目录的创建,查找,判断,对文件夹进行遍历,获取文件大小和删除等操作。

  • java把电脑中的文件和文件夹封装为了一个File类,我们可以使用File类对文件/文件夹进行操作。

  • file类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法。

3、File类下的四个静态成员变量  

注:操作路径不可写死(系统不止一个),Windows系统写死没问题,Linux 系统

D:卓京S21.高级API    (Windows系统写法)

//具体写法如下: 
"D:“+File.separtor+”卓京“+File.separtor+”S2“+File.separtor+”1.高级API" //整体路径是一个字符串,所有整体路径用字符串表示,里面的变为“+File.separtor+”

static

String 

pathSeparator 

路径分隔符,表一个字符串;

windows:分号“;”;linux:冒号“:”

static

char==String

pathSeparatorChar

因public  static  final  String  pathSepartor =""+pathSepartorChaar;所以结果也是Striing

static

String

separtor

默认名称分隔符/文件名称分隔符,表一个字符串String类型

Windows:反斜杠“”;Linux:正斜杠“/”

static

char==String

separtorChar

同pathSepartorChar一样

4、绝对路径&相对路径

绝对路径:一个完整的路径,以盘符开始的路径(C:    D:)

相对路径:相对于本身的路径

  • 路径不区分大小写

  • 路径中文件名称分隔符Windows使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠

  • 路径可是绝对路径也可是相对路径

  • 路径可存在也可不存在

  • 创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况

5、定义File文件对象(文件/文件夹)
File file = new File("D:\其余\最大的敌人是自己.pptx");

6、判断File对象是文件/文件夹? 6.1:判断File是不是文件夹(Directory)    是文件夹/目录:isDirectory();
File file = new File("D:\其余\最大的敌人是自己.pptx");

boolean f = file.isDirectory();//判断file是否为文件夹,返回类型为boolean
System.out.println(f);//打印该对象是否为文件夹,结果:false不存在
6.2:判断 file 是不是文件?是文件:isFile();
File file = new File("D:\其余\最大的敌人是自己.pptx");

boolean f = file.isFile();//判断file是否为文件,返回类型为boolean
System.out.println(f);//打印该对象是否为文件,结果://true存在

7、判断File对象是否存在:exists()?不存在原因:没有这个对象
File file = new File("D:\其余\最大的敌人是自己.pptx");

boolean f = file.exists();//判断file对象是否存在,返回类型为boolean
System.out.println(f);//打印该对象是否存在,结果:true存在
8、创建文件,先判断该文件对象是否存在,不存在则创建;存在,则不创建。createNewFile()

注:if后面如果是一条输出语句花括号可省略,如下代码:

 if (file.exists()) {
  		 System.out.println("文件已存在!")
  else {
   		 System.out.println("创建成功!")
  }
9、创建文件夹,先判断该文件对象是否存在,不存在则创建;存在,则不创建。exists()
File file = new File("D:\其余2");//定义一个我们要创建的新的文件对象
//判断file对象是否存在
if(file.exists()) {//如果存在
                    System.out.println("文件存在,不用创建!");
             }else {//不存在
                    boolean f = file.mkdir();//创建新文件夹为file,返回类型为boolean型
               //判断file是否创建成功/存在
                    if(f) {//如果存在
                           System.out.println("创建成功!");
                    }else {//不存在
                           System.out.println("创建失败!");
                    }
             }
10、获取File对象相关属性(路径/父路径/文件大小/文件名字/最后修改时间); 10.1:获取文件的完整/全路径:getPath
String path = file.getPath();//获取file的路径,返回类型为String
System.out.println(path);//打印路径
10.2:获取文件的大小/长度/尺寸:length();
System.out.println(file.length());//获取file文件的大小并打印
10.3:获取文件名字:getName();
System.out.println(file.getName());//获取该文件的名字并打印
10.4:获取文件最后修改时间,获取文件最后修改的时间:lastModifile();
System.out.println(new Date(file.lastModified()).toLocaleString());

11、删除文件/文件夹; 11.1:删除文件
File file = new File("D:\其余\新笔记本.txt");//定义要删除的文件对象路径

             boolean f = file.delete();//删除f==file文件,返回boolean类型
			//判断f是否删除成功
             if (f) {//成功
                    System.out.println("删除成功!");
             } else {//不成功
                    System.out.println("删除失败!");
             }
11.2:删除文件夹(必须保证是空文件夹)
File file = new File("D:\其余2");//定义要删除的文件夹:其余2

             boolean f = file.delete();//删除f==file文件夹,返回类型为boolean类型
			//判断是否删除成功
             if (f) {//成功
                    System.out.println("删除成功!");
             } else {//不成功
                    System.out.println("删除失败!");
             }
12、获取文件夹里面的文件(名字/对象); 12.1:获取文件夹里面存放的所有文件名字:file.list();
File file = new File("D:\其余");//定义一个我们要文件的文件夹

             String[] f=file.list();//获取file文件夹的所有文件,返回一个String类型的数组
             for (String str : f) {//遍历整个文件f
                    System.out.println(s);//打印该文件夹的所有文件
             }
12.2:获取文件夹里面存放的所有文件对象:listFiles();
File file=new File("D:\其余");//定义我们要获取所有文件的文件夹对象
			//获取file文件机夹里面所有的文件对象(路径/文件名),返回一个对象数组
             File[] listFiles = file.listFiles();
             for (File file2 : listFiles) {//遍历该文件夹所有对象
               		打印该文件夹里所有文件对象的父路径和名字
					System.out.println("路径:"+file2.getParent()+",名字:"+file2.getName());
                    System.out.println(file2);//默认打印该文件夹文件对象的所有父路径
             }
12.3:删除文件夹里的所有文件,除文件夹(里面有内容)
File file=new File("D:\其余2");//定义我们要删除所有文件的文件夹路径

             File[] listFiles = file.listFiles();//获取file文件夹里面的所有文件对象,返回一个对象数组
             for (File file2 : listFiles) {//遍历该文件夹所有文件对象
               //删除该文件夹里所有文件对象,不包括文件夹里面有内容的文件夹,若是空文件夹便可删除
                    file2.delete();
             }
13、获取文件夹里所有文件对象:一个个判断获取方法/递归获取方法 13.1:一个个判断获取铺垫:获取 “测试” 文件夹里面的所有文件对象(包括里面嵌套的文件夹里面的文件对象)
File file=new File("D:\其余2");//定义要获取所有文件对象的文件夹

             File[] listFiles = file.listFiles();// 只是获取到 测试 文件夹里面的文件对象
             for (File fa : listFiles) {// fa:测试 文件夹里面的文件对象。fa可能是文件也可能是文件夹
                    if(fa.isFile()) {// 如果 fa是具体的文件
               		      System.out.println(fa.getName());
                    }else {//否则 fa 是文件夹
                           File[] listFiles2 = fa.listFiles();//获取到 fa 文件夹里面的文件对象
                           for (File fb : listFiles2) {// fb:可能是文件也可能是文件夹
                                 if(fb.isFile()) {//如果是文件
                                        System.out.println(fb.getName());
                                 }else {//否则 fb 是文件夹
                                        File[] listFiles3 = fb.listFiles();//获取到 fa 文件夹里面的文件对象
                                        
                                 }
                           }
                    }
             }
13.2:递归:获取 测试 文件夹里面的所有文件对象(包括里面嵌套的文件夹里面的文件对象)
package com.zking.test;

import java.io.File;

import java.io.IOException;

public class Test {
       
       public static void getAllFile(File file) {
             File[] listFiles = file.listFiles();//获取file文件夹里面的所有文件对象,返回一个文件对象数组
             for (File fa : listFiles) {//遍历该文件夹
                    if (fa.isFile()) {// 如果是文件
                           System.out.println("文件名:" + fa.getName());//打印该文件名
                    } else {// 文件夹
                           getAllFile(fa);// 调用自己本方法
                    }
             }
       }

       public static void main(String[] args) {//mian方法
             File file = new File("D:\其余2");//定义要获取所有文件的文件夹 
             getAllFile(file);//调用getAllFile方法,把要获取的文件夹对象传进去
       }
}
14、通过递归清空文件夹里面的所有文件对象,并删除文件夹。
public class Temp {
    public static void Allfile(File f) {
        if(f.isFile()) {
            System.out.println(f.delete()+"删除成功");
        }else {
            File[] x=f.listFiles();
            for (File f1 : x) {
                Allfile(f1);
            }
        }
        f.delete();
    }

    public static void main(String[] args) throws Exception {
        File file = new File("D:\其余2");
        Allfile(file);
    }
15、通过递归求裴波拉数;1,1,2,3,5,8,13......
package com.zking.test;

public class Tes {
       // 通过递归求 x 位的裴波拉数
       public static int getP(int x) {
             if (x == 1 || x == 2) {// 如果是第1个或者第2个数,则返回1
                    return 1;//返回1
             } else {// 从第三个数开始,等于前两个数之和。
                    return getP(x - 1) + getP(x - 2);//把该位数的前1位数和前2位数相加并返回
             }
       }
       public static void main(String[] args) {//mian方法
             System.out.println(getP(8));//调用该方法传入要求的底8位裴波拉数
       }
}
16、获取系统盘符;
File[] file = File.listRoots();//获取file文件的系统盘符
             for (File file2 : file) {//遍历该文件对象
                    System.out.println(file2);//打印
             }
17、获取File的功能
  • getAbsolutePath();返回该File的绝对路径名字符串;无论路径是绝对路径还是相对路径,都返回的是绝对路径

  • getPath(); 将该File转换为路径名字符串;File里传入什么(相对/绝对)路径则返回什么路径

  • getName();返回File路径(绝对/相对)结尾的文件/文件夹的名称

  • getLength(); 返回File表示的文件的长度/大小,以字节为单位

    • 文件夹无大小概念,不可获取文件夹的大小,返回0;

    • 如File中给出的路径不存在,那么length方法返回0;

18、File类判断功能的方法

返回类型都是boolean类型

  • public boolean  exists();判断该File表示的文件/文件夹是否存在

  • public boolean   isDirectory(); 判断该File表示的是否以文件夹/目录结尾

  • public boolean  isFile();判断该File表示的是否以文件结尾

19、创建删除功能方法
  • public boolean createNewFile();创建一个该文件名称不存在的一个新的空文件;

    • 创建文件时的文件路径必须存在,否则会抛出异常(IOException)

    • 若使用createNewFile创建文件夹(新建文件夹/2),虽然会创建成功,但实际上不是一个文件夹,还是可以通过一些软件打开并往里面书写内容

  • public boolean delete();删除该File表示的文件/文件夹;

    • 文件夹里有内容则不会删除,返回false

    • 路径不存在返回false

    • delete方法是直接在硬盘删除文件,不走回收站

  • public boolean mkdir();创建该File表示的文件夹(单级)

    • 给出路径不存在返回false

    • 若创建文件,但实际上创建的还是一个文件夹

  • public boolean mkdirs();创建该File表示的文件夹,包括任何必须但不存在的父目录(多级)

    • 给出路径不存在返回false

    • 若创建文件,但实际上创建的还是一个文件夹

    • 给出一个错误路径以及文件夹不会抛出异常(true),路径不存在,不会创建

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/998971.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号