File类介绍
File是java.io包下面的一个类,代表与平台无关的文件或者目录。JAVA中,无论文件还是目录,都可以看作File类的一个对象。File类能对文件或目录新建,删除,获取属性等操作,但是不能直接操作文件内容(文件内容需要用数据流访问)。
JVM默认会将workspace作为相对路径,即user.dir系统变量所指路径, 即如果这样初始化file对象,File file = new File("."); 就是获取了user.dir路径。
File类的常用方法
String getName() -如果file对象是一个文件,则返回文件名,如果是路径,则返回路径的最后一级
File getAbsoluteFile() -返回绝对路径
String getParent() -返回file对象所在目录的父目录
File类检查文件
exists()-文件或目录是否存在
canRead()-是否可读
isFile()-是否是文件
isDirectory()-是否是目录
File类获取文件属性
long lastModified() -最后修改时间
long length() -文件长度
File类进行文件操作
createFile() -成功true,失败false
delete()
mkdir() -创建目录 ,file对象必须对应一个路径
String[] list() - 如果file对象是一个路径,list()将返回一个数组,如果路径下没有文件和子目录,则数组为empty;如果file对象是一个文件,或者file路径不存在,或者发生IO错误,则list()返回null
File[] listFiles() -同上,只不过返回的是File类型数组
文件过滤器FilenameFilter接口
如果FilenameFilter作为file.list()的参数传入,实现FilenameFilter接口的accept方法,可以实现文件过滤。
accept方法有两个参数,dir和name,通常可以对name做条件过滤。
下面是File类的综合演示,
1 package io; 2 3 import java.io.File; 4 import java.io.FilenameFilter; 5 import java.io.IOException; 6 7 public class FileTest { 8 public static void main(String[] args) throws IOException { 9 //JVM默认会将workspace作为相对路径,即user.dir系统变量所指路径 10 File file = new File("."); 11 File file2 = new File("C:/PROJECT/JavaBasic/PROJECT_JavaBasic/tmp.txt"); 12 File file3 = new File("./tmp.txt"); 13 //如果file对象是一个文件,则返回文件名,如果是路径,则返回路径的最后一级 14 System.out.println(file.getName()); 15 //当file为相对路径时,获取父路径可能会出错 16 file3.delete(); 17 System.out.println("父路径:"+file3.getParent()); 18 //获取绝对路径 19 System.out.println(file.getAbsoluteFile()); 20 //getAbsoluteFile返回的是File类型, getAbsolutePath则返回String类型 21 System.out.println(file.getAbsoluteFile().getParent()); 22 //在当前路径下创建一个临时文件,第三个参数必须是路径,否则会报错 23 File tmpFile = File.createTempFile("aaa", ".txt", file); 24 //JVM退出时删除该文件 25 tmpFile.deleteOnExit(); 26 //以系统时间作为名称创建文件 27 File newFile = new File(System.currentTimeMillis()+""); 28 System.out.println("newFile是否存在:"+newFile.exists()); 29 //以指定file对象来创建文件 30 newFile.createNewFile(); 31 System.out.println("newFile是否存是文件:"+newFile.isFile()); 32 System.out.println("newFile是否存是目录:"+newFile.isDirectory()); 33 System.out.println("以newFile对象创建目录是否成功:"+newFile.mkdir()); 34 //如果file对象是一个路径,list()将返回一个数组,如果路径下没有文件和子目录,则数组为empty 35 //如果file对象是一个文件,或者file路径不存在,或者发生IO错误,则list()返回null 36 String[] fileList = file.list(); 37 System.out.println("====当前路径下的所有文件和目录如下===="); 38 for (String fileName : fileList) { 39 System.out.println(fileName); 40 } 41 //listRoots静态方法列出所有磁盘根路径 42 File[] roots = File.listRoots(); 43 System.out.println("====系统所有磁盘根路径如下===="); 44 for (File root : roots) { 45 System.out.println(root); 46 } 47 48 String[] nameList = file.list(new FilenameFilter() { 49 @Override 50 public boolean accept(File dir, String name) { 51 // TODO Auto-generated method stub 52 return name.endsWith(".txt") || new File(name).isDirectory(); 53 } 54 }); 55 System.out.println("====过滤条件后如下===="); 56 for (String filterName : nameList) { 57 System.out.println(filterName); 58 } 59 60 } 61 }
输出结果如下,
1 . 2 父路径:. 3 C:\PROJECT\JavaBasic\PROJECT_JavaBasic\. 4 C:\PROJECT\JavaBasic\PROJECT_JavaBasic 5 newFile是否存在:false 6 newFile是否存是文件:true 7 newFile是否存是目录:false 8 以newFile对象创建目录是否成功:false 9 ====当前路径下的所有文件和目录如下==== 10 .classpath 11 .project 12 .settings 13 1480521332106 14 1480521357843 15 1480521378187 16 1480522448612 17 1480522471511 18 1480522477413 19 1480522484941 20 1480522505253 21 aaa2174524463556527449.txt 22 bin 23 src 24 ====系统所有磁盘根路径如下==== 25 C:\ 26 D:\ 27 E:\ 28 F:\ 29 ====过滤条件后如下==== 30 .settings 31 aaa2174524463556527449.txt 32 bin 33 src
相关推荐
二、Servlet基础知识 Servlet是Java平台上的一个服务器端组件,用于扩展Web服务器的功能。在文件上传和下载场景中,Servlet接收客户端请求,处理文件操作,并将结果返回给客户端。 三、文件上传步骤 1. **配置...
Java基础知识学习教程-11IO处理 本篇文章主要介绍了Java中的IO处理,包括文本文件、文件流、缓存流、数据流、管道流、打印流等内容。下面是对每个知识点的详细解释: 1. 文本文件 文本文件是以ASCII码方式存储的...
这个压缩包"Java基础精品课20-IO.zip"很可能包含了一系列关于Java IO的教程文档或代码示例,帮助学习者深入理解和掌握Java IO系统。在Java中,IO(Input/Output)框架提供了丰富的类库来读写数据,无论是从硬盘、...
本压缩包"Java基础精品课15-常用类2.zip"聚焦于Java基础中的常见类和概念,是学习Java开发的重要资源。它包含了进一步深入理解Java核心类库的材料,适合初学者或希望巩固基础知识的开发者。 在Java中,"常用类"通常...
Java基础知识-day08【File类、递归】 本节课主要讲解了Java中的File类和递归编程的知识点。 File类 Java中的File类是java.io包下的一个类,代表了文件和目录路径名的抽象表示。主要用于文件和目录的创建、查找和...
本教程重点聚焦于Java基础知识中的两个关键概念:泛型(Generics)和File类。通过课后练习,我们可以深入理解并熟练掌握这两个主题。 泛型是Java 5引入的一个重要特性,它允许我们在编译时检查类型安全,同时减少了...
Java基础知识是学习Java编程语言的基石,其中包括对输入/输出(IO)的理解和应用。Java IO是Java平台中处理数据输入和输出的核心组件,对于任何Java开发者来说,掌握这一部分的知识至关重要。以下将详细阐述Java基础...
了解这些基础知识后,可以更有效地处理Java程序中的输入输出操作,无论是文件操作、网络通信还是系统间的数据交互。在开发过程中,正确选择和使用Java IO流能够提高程序的效率和灵活性,是每个Java开发者必备的技能...
Java IO流体系结构庞大,包括了字节流和字符流两大类,每类又有输入流和输出流之分。 1. Java流概述: Java流是一个抽象的概念,它代表了数据的流动。Java中的流分为字节流和字符流,字节流处理的是8位的字节数据,...
10. **文件和目录操作**:学习如何创建、读取、修改和删除文件及目录,包括File类的API和NIO(New IO)框架。 此外,课程可能还会涉及JSP(JavaServer Pages)的基础知识,这是用于构建动态网页的技术。JSP结合了...
Java IO流中的File类是Java标准库中处理文件操作的核心类。它位于`java.io`包下,提供了创建、删除、重命名文件以及查询文件属性等基本操作。在这个主题中,我们将深入探讨File类的使用及其相关知识点。 1. **File...
在"【IT十八掌徐培成】Java基础第15天-01.File操作-递归访问文件夹.zip"这个课程中,徐培成老师可能详细讲解了如何利用File类进行文件和目录的递归访问。递归访问是指在遇到目录时,不仅访问当前目录下的文件,还...
本知识点将深入探讨Java IO流的相关细节,包括节点流与处理流的概念,以及文件流、标准输入输出流、缓冲流、转换流、打印流、数据流和对象流的处理过程和使用方法。 首先,Java中的IO流根据数据流向可以分为输入流...
Java基础知识涵盖了广泛的编程概念和技术,这里我们将聚焦于Java文件操作这一主题,这在日常开发中是非常常见的需求。在Java中,文件操作主要包括创建、删除、判断文件或目录的存在性等。 1. **File类**: - `File...
这个文件很可能是Markdown格式的学习笔记,里面可能详细讲解了Java IO的基础概念,如流的概念、分类(如字节流和字符流)、以及各种流的使用方法。可能会涵盖InputStream、OutputStream、Reader、Writer类族,还...
在这个项目中,我们可能会用到`java.io`包下的类,如`File`, `FileReader`, `FileWriter`, `BufferedReader`, `BufferedWriter`等,它们用于对文件进行操作。 2. **控制台输出**: 在标签中提到了“JAVA IO 控制台...
在Java编程语言中,文件输入流(FileInputStream)和文件输出流(FileOutputStream)是用于读写文件的核心类,它们位于java.io包中。这两个类是I/O操作的基础,允许程序与磁盘上的文件进行数据交换。下面我们将深入...
在Java中,我们可以使用`java.io.File`类来创建、删除、重命名或检查文件是否存在。例如,创建一个新文件的代码如下: ```java File file = new File("newFile.txt"); file.createNewFile(); ``` 如果要移动文件,...