关键词:
java.io
类 File
java.lang.Object
java.io.File
- 所有已实现的接口:
- Serializable, Comparable<File>
- public class File extends Objectimplements Serializable, Comparable<File>
-
文件和目录路径名的抽象表示形式。
用户界面和操作系统使用与系统相关的路径名字符串 来命名文件和目录。此类呈现分层路径名的一个抽象的、与系统无关的视图。抽象路径名 有两个组件:
- 一个可选的与系统有关的前缀 字符串,比如盘符,
"/"
表示 UNIX 中的根目录,"\\\\"
表示 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
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
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
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
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
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
学习参考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类的对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息&... 查看详情