`

JAVA基础知识之IO-File类

    博客分类:
  • java
 
阅读更多

转自:http://www.cnblogs.com/fysola/p/6120362.html

 

JAVA基础知识之IO-File类

 

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
复制代码
分享到:
评论

相关推荐

    java+servlet+commons-io-2.4.jar+commons-fileupload-1.3.jar实现文件的上传与下载

    二、Servlet基础知识 Servlet是Java平台上的一个服务器端组件,用于扩展Web服务器的功能。在文件上传和下载场景中,Servlet接收客户端请求,处理文件操作,并将结果返回给客户端。 三、文件上传步骤 1. **配置...

    java基础知识学习教程-11IO处理.pptx

    Java基础知识学习教程-11IO处理 本篇文章主要介绍了Java中的IO处理,包括文本文件、文件流、缓存流、数据流、管道流、打印流等内容。下面是对每个知识点的详细解释: 1. 文本文件 文本文件是以ASCII码方式存储的...

    Java基础精品课20-IO.zip

    这个压缩包"Java基础精品课20-IO.zip"很可能包含了一系列关于Java IO的教程文档或代码示例,帮助学习者深入理解和掌握Java IO系统。在Java中,IO(Input/Output)框架提供了丰富的类库来读写数据,无论是从硬盘、...

    Java基础精品课15-常用类2.zip

    本压缩包"Java基础精品课15-常用类2.zip"聚焦于Java基础中的常见类和概念,是学习Java开发的重要资源。它包含了进一步深入理解Java核心类库的材料,适合初学者或希望巩固基础知识的开发者。 在Java中,"常用类"通常...

    Java基础知识-day08【File类、递归】.pdf

    Java基础知识-day08【File类、递归】 本节课主要讲解了Java中的File类和递归编程的知识点。 File类 Java中的File类是java.io包下的一个类,代表了文件和目录路径名的抽象表示。主要用于文件和目录的创建、查找和...

    580.578.JAVA基础教程_泛型与File-File类的课后练习(580).rar

    本教程重点聚焦于Java基础知识中的两个关键概念:泛型(Generics)和File类。通过课后练习,我们可以深入理解并熟练掌握这两个主题。 泛型是Java 5引入的一个重要特性,它允许我们在编译时检查类型安全,同时减少了...

    java基础知识 io

    Java基础知识是学习Java编程语言的基石,其中包括对输入/输出(IO)的理解和应用。Java IO是Java平台中处理数据输入和输出的核心组件,对于任何Java开发者来说,掌握这一部分的知识至关重要。以下将详细阐述Java基础...

    Java IO知识点

    了解这些基础知识后,可以更有效地处理Java程序中的输入输出操作,无论是文件操作、网络通信还是系统间的数据交互。在开发过程中,正确选择和使用Java IO流能够提高程序的效率和灵活性,是每个Java开发者必备的技能...

    2020老杜最新Java零基础进阶视频教程-IO流课件

    Java IO流体系结构庞大,包括了字节流和字符流两大类,每类又有输入流和输出流之分。 1. Java流概述: Java流是一个抽象的概念,它代表了数据的流动。Java中的流分为字节流和字符流,字节流处理的是8位的字节数据,...

    java基础课件(1---10)

    10. **文件和目录操作**:学习如何创建、读取、修改和删除文件及目录,包括File类的API和NIO(New IO)框架。 此外,课程可能还会涉及JSP(JavaServer Pages)的基础知识,这是用于构建动态网页的技术。JSP结合了...

    javaIO流File类的使用共3页.pdf.zip

    Java IO流中的File类是Java标准库中处理文件操作的核心类。它位于`java.io`包下,提供了创建、删除、重命名文件以及查询文件属性等基本操作。在这个主题中,我们将深入探讨File类的使用及其相关知识点。 1. **File...

    【IT十八掌徐培成】Java基础第15天-01.File操作-递归访问文件夹.zip

    在"【IT十八掌徐培成】Java基础第15天-01.File操作-递归访问文件夹.zip"这个课程中,徐培成老师可能详细讲解了如何利用File类进行文件和目录的递归访问。递归访问是指在遇到目录时,不仅访问当前目录下的文件,还...

    Java基础篇:IO流.pdf

    本知识点将深入探讨Java IO流的相关细节,包括节点流与处理流的概念,以及文件流、标准输入输出流、缓冲流、转换流、打印流、数据流和对象流的处理过程和使用方法。 首先,Java中的IO流根据数据流向可以分为输入流...

    java 基础知识资料下载

    Java基础知识涵盖了广泛的编程概念和技术,这里我们将聚焦于Java文件操作这一主题,这在日常开发中是非常常见的需求。在Java中,文件操作主要包括创建、删除、判断文件或目录的存在性等。 1. **File类**: - `File...

    IO-黑马程序员Java学习笔记.rar

    这个文件很可能是Markdown格式的学习笔记,里面可能详细讲解了Java IO的基础概念,如流的概念、分类(如字节流和字符流)、以及各种流的使用方法。可能会涵盖InputStream、OutputStream、Reader、Writer类族,还...

    JAVA-快递管理系统-无数据库-IO

    在这个项目中,我们可能会用到`java.io`包下的类,如`File`, `FileReader`, `FileWriter`, `BufferedReader`, `BufferedWriter`等,它们用于对文件进行操作。 2. **控制台输出**: 在标签中提到了“JAVA IO 控制台...

    java-fileinputoutput-stream.zip_File and java

    在Java编程语言中,文件输入流(FileInputStream)和文件输出流(FileOutputStream)是用于读写文件的核心类,它们位于java.io包中。这两个类是I/O操作的基础,允许程序与磁盘上的文件进行数据交换。下面我们将深入...

    Java IO 基础操作(文件读写和移动)

    在Java中,我们可以使用`java.io.File`类来创建、删除、重命名或检查文件是否存在。例如,创建一个新文件的代码如下: ```java File file = new File("newFile.txt"); file.createNewFile(); ``` 如果要移动文件,...

Global site tag (gtag.js) - Google Analytics