file类的基本使用(代码片段)

liuzeyu12a liuzeyu12a     2023-03-09     105

关键词:

java.io

类 File

java.lang.Object
java.io.File
所有已实现的接口:
Serializable, Comparable<File
public class File extends Objectimplements Serializable, Comparable<File>

文件和目录路径名的抽象表示形式。

用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。抽象路径名 有两个组件:

  1. 一个可选的与系统有关的前缀 字符串,比如盘符,"/" 表示 UNIX 中的根目录,"\\\\" 表示 Microsoft Windows UNC 路径名。
  2. 零个或更多字符串名称 的序列。
抽象路径名中的第一个名称是目录名,对于 Microsoft Windows UNC 路径名则是主机名。抽象路径名中第一个名称之后的每个名称表示一个目录;最后一个名称既可以表示目录,也可以表示文件。 抽象路径名没有前缀和名称序列。 

 

1、构建File对象

查看相关的API文档 (jdk1.60)

构造方法摘要
File(File parent, String child)
          根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
File(String pathname)
          通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
File(String parent, String child)
          根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
File(URI uri)
          通过将给定的 file: URI 转换为一个抽象路径名来创建一个新的 File 实例。

代码:

技术图片
 1 package 测试io;
 2 
 3 import java.io.File;
 4 
 5 /**
 6  * 获取文件的几个常见方法
 7  * @author liuzeyu12a
 8  *
 9  */
10 
11 public class FileDemo001 
12 
13     public static void main(String[] args) 
14 
15         String path = "E:/JAVA";
16         /**
17          * 构建File对象
18          */
19         // 方法1
20         File file = new File(path);
21         System.out.println(file);
22 
23         // 方法2
24         file = new File("E:", "Java");
25         System.out.println(file);
26 
27         // 方法3
28         file = new File(new File("E:/"), "java");
29         System.out.println(file);
30 
31     
32 
33 
View Code

1.1 文件状态(存在 ?目录 : 文件 )

代码:

技术图片
 1 package 测试io;
 2 
 3 import java.io.File;
 4 
 5 /**
 6  * 操作文件状态
 7  * 文件状态 1、不存在: exists 
 8  * 2、存在 文件: isFile 
 9  * 文件夹: isDirectory
10  *
11  */
12 public class FileDemo03 
13 
14     public static void main(String[] args) 
15         File src = new File("IO.png");
16         System.out.println(src.getAbsolutePath());
17         System.out.println("是否存在:" + src.exists());
18         System.out.println("是否文件:" + src.isFile());
19         System.out.println("是否文件夹:" + src.isDirectory());
20 
21         src = new File("IO.png");
22         System.out.println("----------");
23         System.out.println("是否存在:" + src.exists());
24         System.out.println("是否文件:" + src.isFile());
25         System.out.println("是否文件夹:" + src.isDirectory());
26 
27         src = new File("D:\\java300\\IO_study01");
28         System.out.println("----------");
29         System.out.println("是否存在:" + src.exists());
30         System.out.println("是否文件:" + src.isFile());
31         System.out.println("是否文件夹:" + src.isDirectory());
32 
33         // 文件状态
34         src = new File("xxx");
35         if (null == src || !src.exists()) 
36             System.out.println("文件不存在");
37          else 
38             if (src.isFile()) 
39                 System.out.println("文件操作");
40              else 
41                 System.out.println("文件夹操作");
42             
43         
44 
45     
46 
47 
View Code

1.2文件对象的一些其他的方法
代码:

技术图片
 1 package 测试文件;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 import java.util.Date;
 6 
 7 public class TestFile1 
 8 
 9     public static void main(String[] args) throws IOException 
10         File f = new File("e://bbb.txt");
11         f.createNewFile(); // 创建文件
12         System.out.println(f.isDirectory()); // 是否为目录
13         System.out.println(f.getAbsoluteFile()); // 获取绝对路径
14         System.out.println(f.isFile()); // 是否为文件
15         System.out.println(new Date(f.lastModified())); // 最后修改时间
16         System.out.println(f.getName());
17         System.out.println(f.length());
18         System.out.println(f.getPath());
19 
20         f.renameTo(new File("222.txt")); // 改名
21         System.out.println(System.getProperty("user.dir")); // 获取当前工作空间
22 
23         // 理解mkdir,mkdirs
24         File f2 = new File("e:/haha/xixi");
25         boolean flag = f2.mkdir(); // 目录少一个就不创建
26         boolean flag2 = f2.mkdirs(); // 没有即创建
27         System.out.println("mkdir创建" + flag + "
" + "mkdirs创建" + flag2);
28 
29     
30 
View Code

2、路径的表示

1windows 下面的路径分隔符必须使用 \\ 进行转义,Linuix上面的文件系统使用  /

所以为了养成好的编码习惯,建议使用:

1) /

2)使用File常量 separator 拼接.

代码:

技术图片
 1 package 测试io;
 2 
 3 import java.io.File;
 4 
 5 /**
 6  * 路径,分隔符 /   7  * @author liuzeyu12a
 8  *
 9  */
10 
11 /**
12  * 数据源----->程序:这个过程称为读 程序----->界面:这个过程称为写
13  * 
14  * @author liuzeyu12a
15  *
16  */
17 public class PathDemo001 
18 
19     /**
20      * 分割符:separator
21      * 
22      * @param args
23      */
24     public static void main(String[] args) 
25 
26         // 如果使用:
27         System.out.println(File.separator); // 输出:反斜杠
28         // 在window 里面要使用转义字符进行转义,如
29         String path = "E:\\JAVA";
30         // 如果使用separator就可以不用,我们使用拼接
31         path = "E:" + File.separator + "Java";
32 
33         // 建议使用:/
34         path = "E:/JAVA";
35     
36 
37 
View Code

2.1 绝对路径 与  相对路径

相对路径与绝对路径 判断规则: 

1)存在盘符:绝对路径 
2)不存在盘符,当前路径user.dir

代码:

技术图片
 1 package 测试io;
 2 
 3 import java.io.File;
 4 
 5 /**
 6  * 相对路径与绝对路径 判断规则: 
 7  * 1)存在盘符:绝对路径 
 8  * 2)不存在盘符,当前路径user.dir
 9  * 
10  * @author liuzeyu12a
11  *
12  */
13 public class FileDemo002 
14 
15     public static void main(String[] args) 
16 
17         // 绝对路径
18         String path = "E:/JAVA/北京尚学堂";
19         File file = new File(path);
20         System.out.println(file.getAbsolutePath());
21 
22         // 相对路径
23         // 输出当前的工作空间路径
24         System.out.println(System.getProperty("user.dir"));
25         file = new File("IO.png"); // 相对于工作空间
26         System.out.println(file.getAbsolutePath()); // 此时创建了一个不存在的路径
27     
28 
29 
View Code

 3、递归实现文件目录的查看

 递归体:

    //level 表示文件目录的层次
    public static void printFile(File f, int level) 
        for (int i = 0; i < level; i++)
            System.out.print("-");
        System.out.println(f.getName());
        if (f.isDirectory()) 
            File[] files = f.listFiles();
            for (File temp : files) 
                printFile(temp, level + 1);
            
        
    

实现代码:

package 测试文件;
import java.io.File;
public class PrintFile1 

    public static void main(String[] args) 

        File f = new File("E:\\JayChou地表最强泉州站");
        printFile(f, 0);
    

    //level 表示文件目录的层次
    public static void printFile(File f, int level) 
        for (int i = 0; i < level; i++)
            System.out.print("-");
        System.out.println(f.getName());
        if (f.isDirectory()) 
            File[] files = f.listFiles();
            for (File temp : files) 
                printFile(temp, level + 1);
            
        
    

*扩展延伸,利用面向对象思想统计文件的个数和文件夹的个数

技术图片
 1 package 测试io;
 2 
 3 import java.io.File;
 4 
 5 public class FileDirDemo01 
 6 
 7     // 文件夹长度
 8     private int len;
 9     // 文件夹路径
10     private String path;
11     // 文件夹个数
12     private int dirSize;
13     // 文件个数
14     private int fileSize;
15 
16     // 文件源
17     private File src;
18 
19     // 构造方法,创建file对象
20 
21     public FileDirDemo01(String path) 
22         this.path = path;
23         this.src = new File(path);
24         dirCount(this.src);
25     
26 
27     public static void main(String[] args) 
28         FileDirDemo01 dirDemo = new FileDirDemo01("E:\\JAVA\\workspac\\BF算法与KMP算法");
29         System.out.println("文件夹大小" + dirDemo.len + "文件个数" + dirDemo.fileSize + "文件夹个数" + dirDemo.dirSize);
30     
31 
32     //文件计数,文件夹
33     public void dirCount(File f) 
34 
35         if (f.exists() && f != null) 
36 
37             if (f.isFile()) 
38                 len += f.length();
39                 this.fileSize++; // 文件个数
40              else 
41                 this.dirSize++;
42                 for (File flies : f.listFiles()) 
43                     dirCount(flies);
44                 
45             
46         
47     
48 
49 
View Code

学习参考jdk 1.60 文档

学完时间隔了好久 总感觉要把IO这块总结一下,学到脑子一团糊技术图片。写的不好的地方望大佬可以指出。

java删除文件或者文件夹(代码片段)

...章目录一、JAVA删除文件或者空文件夹的四种基本方法File类的delete()File类的deleteOnExit()Files类的delete(Pathpath)Files类的deleteIfExists(Pathpath)总结二、如何删除整个目录或者目录中的部分文件使用FileVistor遍历文件和目录Files.walkFileTree删... 查看详情

file工具类的使用案例(代码片段)

1、相对路径和绝对路径文件的创建packagechart02;importjava.io.File;importjava.io.IOException;publicclassFilePathpublicstaticvoidmain(String[]args)throwsIOException//绝对路径Filefile=newFile("d:/test.txt");//相对 查看详情

java中file文件操作类的详细使用介绍(代码片段)

文章目录File类的使用File的介绍File常用API判断文件类型-获取文件信息创建文件-删除文件功能遍历文件夹File类的使用File的介绍File的概述:File类在包java.io.File下、代表操作系统的文件对象(文件、文件夹)。File类提供了诸... 查看详情

java自用练习题-file类的使用(代码片段)

File类的使用-练习题:判断指定目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称publicclassFindJPGFileTest @Test publicvoidtest1() FilesrcFile=newFile("d:\\\\code"); String[]fileNames=sr 查看详情

枚举类的基本使用(代码片段)

packageloaderman.demoenumclassEnumClassA,B,C,Dpackageloadermanimportloaderman.demo.EnumClassfunmain(arg:Array<String>)vala=EnumClass.Aprintln(a)  查看详情

file类(代码片段)

...方法,可实现创建、删除、重命名文件等功能。使用File类的对象可以获取文件的基本信息,如文件所在的目录、文件名、文件大小、文件的修改时间等。创建文件对象File类常用的构造方法:Filefile=newFile(C:\\\\Windows);文件操作File... 查看详情

file类的使用(代码片段)

...涉及文件内容的,File都无能为力,必须由io流来完成5.File类的对象常作为io流的具体类的构造器的形参*/publicclassTestFile/**路径:绝对路径:包括磁盘在内的完整的文件路径*相对路径:在当前文件目录下的文件的路径**getName()*getPat... 查看详情

urllib库基本使用(代码片段)

#导入urllib库importurllib.request#打开网址file=urllib.request.urlopen("http://www.sohu.com/",timeout=5)#读取网页源码file.read().decode("utf-8","ignor")#返回爬取网页的状态码print(file.getcode())#获取当前访问网页的urlprint(file.geturl 查看详情

files类读写文件的基本使用(代码片段)

1.传统的输入/输出流或读入器/写入器操作文件读写:输入/输出流//InputStreamin=newFileInputStream(newFile("D://test.txt"));//byte[]bytes=newbyte[1024];//BufferedOutputStreambufferedOutputStream=newBuffere 查看详情

files类读写文件的基本使用(代码片段)

1.传统的输入/输出流或读入器/写入器操作文件读写:输入/输出流//InputStreamin=newFileInputStream(newFile("D://test.txt"));//byte[]bytes=newbyte[1024];//BufferedOutputStreambufferedOutputStream=newBuffere 查看详情

file类(代码片段)

File类的使用1.file类的一个对象,代表的是一个文件或文件目录(文件夹)2.file类声明在java.io包下1、构造器相对路径:相对于当前的文件所在位置(个人理解)绝度路径:包含盘符在内的文件或者文件夹的路径(copy尚硅谷)补充:... 查看详情

37.c#--面对对象_类的基本使用(代码片段)

//一:新建个Person类publicclassPerson//Person的字段publicstring_name;publicint_age;publicchar_gender;//Person的方法publicvoidCHLSS()Console.WriteLine("我叫0,我今年1岁了,我是2生",this._name,this._age,this._gender); 查看详情

如何在没有虚方法的情况下创建派生类的基类?(代码片段)

...river不提供虚函数,那么使用Driver*的代码使用来自Driver的类的实现是不可能的。但是,您可以根据驱动程序使用的类型更改您的代码并使用两个实例,一个用于Driver,另一个用于SimulationDriver(甚至不必从Driver派生)。请注意,... 查看详情

file类的获取功能(代码片段)

1importjava.io.File;23/*4*获取功能:5*String[]list():返回当前路径的文件夹和文件的名称6*File[]listFile():返回多个File对象7*staticfileRoot():返回所有的盘符8*/910publicclassFileDemo41112publicstaticvoidmain(String[]args)13//file对象的路径自己 查看详情

javafile类的基本使用

packagecom.soar.file;importjava.io.File;importjava.io.IOException;publicclassDemo2_FileMethod{/**A:创建功能*publicbooleancreateNewFile():创建文件如果存在这样的文件,就不创建了*publicbooleanmkdir():创建文件夹如果存在这样的文件夹,就不创建了*publ 查看详情

file以及i/o流(代码片段)

目录File类的使用I/O流流的概念流的分类 字节流 字符流过滤流File类的使用java.io.File类代表硬盘上的一个文件或者目录 java.io.File类作用每个File类的对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息&... 查看详情

javaio流总结(代码片段)

1.File类的使用java.io.File类:文件和文件目录路径的抽象表示形式,与平台无关;File能新建、删除、重命名文件和目录,但File不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流;想要在Java程序中表示... 查看详情

file以及i/o流(代码片段)

目录File类的使用I/O流流的概念流的分类 字节流 字符流过滤流File类的使用java.io.File类代表硬盘上的一个文件或者目录 java.io.File类作用每个File类的对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息&... 查看详情