java.io.file()_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 packageio;2

3 importjava.io.File;4 importjava.io.FilenameFilter;5 importjava.io.IOException;6

7 public classFileTest {8 public static void main(String[] args) throwsIOException {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()将返回一个数组,如果路径下没有文件和子目录,则数组为empty35 //如果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(newFilenameFilter() {49 @Override50 public booleanaccept(File dir, String name) {51 //TODO Auto-generated method stub

52 return name.endsWith(".txt") || newFile(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_JavaBasic5 newFile是否存在:false

6 newFile是否存是文件:true

7 newFile是否存是目录:false

8 以newFile对象创建目录是否成功:false

9 ====当前路径下的所有文件和目录如下====

10 .classpath11 .project12 .settings13 1480521332106

14 1480521357843

15 1480521378187

16 1480522448612

17 1480522471511

18 1480522477413

19 1480522484941

20 1480522505253

21 aaa2174524463556527449.txt22 bin23 src24 ====系统所有磁盘根路径如下====

25 C:\26 D:\27 E:\28 F:\29 ====过滤条件后如下====

30 .settings31 aaa2174524463556527449.txt32 bin33 src

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/333569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

netflix 模式创新_创新设计模式:单例模式

netflix 模式创新单例设计模式是一种软件设计模式,用于将类的实例化限制为一个对象。 与其他创建设计模式(例如抽象工厂 , 工厂和构建器模式)相比,单例将创建一个对象,但也将负责,因此该对象只…

美式英语 [t] 的发音

爆破音 true [t],发真实的 t。 单词的开始处重读音节的开始处,且前面没有跟着清辅音 [s] held 住不发声 叫法很多,声门塞音、吞音、喉塞(s)音、stop [t],held [t],不爆破的 [t]。 发音的口…

设计模式 原型模式_创新设计模式:原型模式

设计模式 原型模式原型模式用于创建对象的副本。 这种模式非常有用,特别是当从头开始创建对象的成本很高时。 与builder , factory和abstract factory模式相比,它不会从头开始创建对象,而是会克隆/重新创建它。 与单例模式相比&a…

java file 对象_Java里File对象的问题。

Java里File对象的问题。关注:282 答案:2 mip版解决时间 2021-02-02 07:14提问者鉨瞞着所囿亾,爱着誰2021-02-01 08:59import java.io.*;在此基础上怎么修改呢? 谢谢啦最佳答案二级知识专家山河已春2021-02-01 10:06import java.io.*;class JavaFileLis…

美式英语中 [d] 的特别发音

闪音 flap [d],fast [d],闪音 [d] 发音口腔部位说明:舌尖快速拍打上齿龈后,快速释放,轻快拍打 [d] 在两个元音之间发成 fast [d],非重读音节在元音和 [l] 之间发成 fast [d],非重读音节在[r]…

netflix 模式创新_创新设计模式:工厂模式

netflix 模式创新以前,我们对创建模式进行了介绍,并使用抽象工厂模式来创建对象族。 下一个模式是Factory模式 。 当涉及到Java时,工厂模式是最常用的模式之一。 那么工厂模式到底是什么呢? 工厂模式处理创建对象而不指定确切的…

g++ 编译mysql动态库_Linux下g++编译以及使用静态库和动态库的方法详解

下面小编就为大家带来一篇Linux下g编译与使用静态库和动态库的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧在windows环境下,我们通常在IDE如VS的工程中开发C项目,对于生成和使用静态库(*.…

家用电器如何计算功率和消耗的度数

计算公式:((U*I)/1000)*t 说明: 这里计算的都是电器的额定功率、额定电压、额定电流。U 是电压;I 是电流;t 是时间,单位是小时;U*I 得到的是电功率,例如电压12v,电流5A,…

构建器设计模式_创新设计模式:构建器模式

构建器设计模式以前我们看过工厂和抽象工厂模式。 这些模式可以达到目的,并且确实有用,但是在某些用例中,我们必须创建一个非常复杂的对象,并且创建它需要不同的步骤,每个步骤都需要不同的操作。 在这种情况下&#xf…

在线maven托管_使用Amazon s3托管您的Maven工件

在线maven托管如果您使用Amazon Web Services并将Java用于项目,则Amazon S3是托管团队工件的理想场所。 它很容易设置,而且很便宜。 如果您对它们的功能不特别感兴趣,那么它比设置现有存储库选项(jfrog,nexus&#xf…

英语单词如何看字母划分音节

音节划分是读准单词的基本前提之一,划分音节虽麻烦但熟能生巧,在英语交流或阅读时,经常会碰到不认识的单词或专有名称,如果你懂得了音节的划分,那再难的单词你也会读。 1、音节划分。 英语中以元音来划分音节&#xf…

layui绑定json_JSON绑定:概述系列

layui绑定jsonJSON绑定的Java API(JSON-B)1.0增强了Java EE平台对JSON数据交换格式的整体支持。 事实证明, 用于JSON处理的Java API(JSON-P)1.1十分流行,它们共同构成了完美的合作伙伴,填补了Ja…

英文单词的音节分类

绝对开音节 以发音的元音字母结尾的叫绝对开音节,且这个元音字母发的是自己本音。例如:he /hi:/ 和 go /gəu/ 相对开音节 一个辅音字母加上不发音的元音字母(通常是字母 e)结尾的叫相对开音节,其实就是以不发音的元…

java捕捉了异常_java 异常捕获与异常处理

try{会产生异常的代码}catch(出现异常的类型 e){异常出现后处理的方法}一旦异常出现又没有异常处理,程序就会中断。public static void main(String[] args) {try {int num 10 / 0;System.out.println(num);} catch (ArithmeticException e) {System.out.println(&…

2018年4月13日_Java的最新发展– 2018年4月下旬

2018年4月13日本周Java领域有一些最新的发展,我在本文中总结了其中的一些。 我们知道的JavaOne的终结 Stephen Chin在帖子“ JavaOne活动扩展了更多的曲目,语言和社区,并有了新名称 ”中写道:“ JavaOne会议正在扩展,…

Windows 系统下通过命令将本地文件上传至远程 Linux 主机的指定目录下

这里是借助文件传输客户端 putty 的命令来上传文件。 第一步:下载安装 putty 第二步:通过命令终端进入 putty 的主目录下,即进入 D:\puggy 目录下,该目录下含有多个可执行文件(以 .exe 为后缀名的文件) 第…

java读取codetable_解析Java对象的equals()和hashCode()的使用

解析Java对象的equals()和hashCode()的使用前言在Java语言中,equals()和hashCode()两个函数的使用是紧密配合的,你要是自己设计其中一个,就要设计另外一个。在多数情况 下,这两个函数是不用考虑的,直接使用它们的默认设…

jvm体系结构_JVM体系结构:JVM中的执行引擎

jvm体系结构各位读者好! 在JVM系列的上一篇文章中,开发人员了解了虚拟机的ClassLoader和Runtime Data Areas组件。 本教程将帮助开发人员正确理解JVM中的执行引擎 。 1.简介 在继续之前,让我们看一下Java虚拟机及其基本特征。 1.1什么是Jav…

如何才能不改变图片的像素大小,只改变图片的文件大小

如图,有一张这样的图片,我们需要对它进行压缩: 处理前该图片的像素尺寸和文件大小如图所示: 接着我们使用PS打开该图片,如果不想改变尺寸大小,只改变文件大小。点击菜单【文件】->【存储为web和设备所…

java通用编码规范考试_《java编码规范考试题答案》.doc

一、单选题1. 如下关于集合类的描述错误的是 BA. 含有集合意义的属性命名,尽量包含其复数的意义B. 集合中的数据不需要释放,垃圾回收器会自动回收C. 集合必须指定模板类型D. 使用集合类时要设置初始化容量2. 关于线程以下说法错误的有BA. 新起一个线程&a…