做文件读取写入的时候,要用到一个类: File,这里简单记录。

构造方法,传入一个字符串,绝对路径和相对路径都可以,文件名或者文件夹也可以:

public File(String pathname)

还有其它三个方法,不过个人认为用处好像不大,不表。
使用方式就是new一个:
File file = new File(fileName);  

特别要注意的是这里的一个File对象,真的就只是一个对象而已,和你电脑上那个实际的文件,没半毛钱关系,它只是一个普通对象,持有了这个文件名,然后解析出了其它的一点,比如文件名啊,文件系统类型啊,分隔符啥的。

提供了一些还有点用的方法:

1、获取文件名,如果是文件的话,就是文件名,如果是文件夹,那就是文件夹名咯?如果是以“./test.txt”这种形式的话,结果就是test.txt,如果传这个“./”,那直接就是“.”了:

public String getName()

2、获取上级文件名:

public String getParent()

3、获取上级文件:

public File getParentFile()

4、判断是否是绝对路径:

public boolean isAbsolute()

5、获取对应的绝对路径:

public String getAbsolutePath()

6、获取绝对路径形式的一个File实例:

public File getAbsoluteFile()

7、获取路径,这种路径是标准格式的路径,对于win上,会返回可以直接用来放到文件夹的地址栏里打开:

public String getCanonicalPath()

这个方法和上面的两个方法有点区别,表述起来不方便,一张图说明差异:

8、获取上面方法的地址对应的File实例:

public File getCanonicalFile()

9、还能toURI,也不知道啥时候有用哦:

public URI toURI()

10、判断此File实例对应的真实文件是否可读,这个有点用:

public boolean canRead()

11、有可读判断自然有可写判断:

public boolean canWrite()

12、还有是否存在的判断:

public boolean exists()

13、判断是否是文件夹?是路径?是目录?反正就是不是文件的那个东西:

public boolean isDirectory()

14、判断是否是文件:

public boolean isFile()

15、还能判断是否是隐藏文件:

public boolean isHidden()

16、上次修改时间,返回一个long形式的数字。。。:

public long lastModified()

17、文件长度,返回的是个long形数字,表示这个实际文件的字节数(byte):

public long length()

用在哪?读取文件的时候,如果想整个读出来,比如有一个不大不小的文本文件,想整个读取出来,就需要先准备好一个byte数组了,数组长度多少比较好呢?可不就是这个长度了嘛:

byte[] filecontent = new byte[filelength.intValue()];

18、还可以创建个新的文件,当然了,只有文件不存在才会创建并返回true,如果文件存在就不创建了并返回false:

public boolean createNewFile()

而如果指定的文件里带路径并且路径不存在,就直接报错了:

19、删除文件,这下和机器上的实际文件挂上钩了:

public boolean delete()

20、JVM退出时删除文件???:

public void deleteOnExit()

从最普通的main方法里看,main方法退出的时候,这个文件删除了,不确定web项目的话什么时候会进行删除操作。

21、获取当前路径下(如果是路径的话)的所有文件名:

public String[] list()

如果不是路径而是个普通文件,该方法返回null。

如果是路径,也不保证返回的数组里文件名的顺序,据说是特别不要想着会以字母表顺序返回。本人测试时发现在win里好像是以排列顺序返回的,不过排列顺序这玩意,它叫我们不要信,那我们就认为是乱序的吧,真要排序就拿来自己排一下。

22、获取当前路径下所有文件名对应的File实例数组:

public File[] listFiles(FilenameFilter filter)

这里的FilenameFilter只是一个接口,使用的时候可以这样:

特别注意这里需要重写accept方法,接收的参数dir是当前路径,name就是路径下的一个文件名,这里假设获取当前路径下以.jpg结尾的所有File实例。

23、用当前传入的路径创建文件夹:

public boolean mkdir()

注意这里只有当只需要创建最后一节路径的文件夹时才会创建成功,否则会创建失败返回一个false。

比如,传入的路径是这样:E:\game\test\test1,那就只有当E盘下game和test都是已经存在的文件夹时,才会创建最后那一节test1作为文件夹,否则就会创建失败。要想在game和test文件夹都不存在的情况下创建成功,请用下面这个方法:

24、创建指定的任意合法的路径文件夹,上级文件夹不存在的话也会创建上级文件夹。

public boolean mkdirs()

当然,这两个方法都是只创建成文件夹,哪怕传入的是.../.../test.txt这种形式的参数,也是一个文件夹,不要想着会是一个txt文件。

25、重命名为另外一个File实例指定的文件名:

public boolean renameTo

还有几个修改文件可读可写可执行的方法,不表。

静态方法:

26、获取当前系统根目录:

public static File[] listRoots()

win上就是c, d, e, f...之类的路径,linux没实验,据说就是一个斜杠表示的根目录(/)。

27、还有个方法,生成临时文件:

public static File createTempFile

也是静态方法,描述上说是生成临时文件,可传入三个参数,依次是,前缀,后缀,路径。生成的文件如下:

真的在这个位置生成了一个这样的文件,当然,是空的。和createNewFile方法还是有区别的,createNewFile方法需要先有一个File实例,然后才可以生成文件,而这个直接是个静态方法。createNewFile方法不会生成随机串在文件名里,这个方法会。

据说这个方法生成的文件就适合配合deleteOnExit方法使用。呵。

转载于:https://www.cnblogs.com/lihan829/p/9557674.html

Java类之File记录相关推荐

  1. Java基础:File类与IO流

    1. File类 1.1 概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 1.2 构造方法 public File(String path ...

  2. Java中的File类和IO流

    Java中的File类和IO流 File类 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. File的分隔符 import java.io.Fi ...

  3. Java学习总结:41(文件操作类:File)

    Java文件操作类:File 在java.io包中,如果要进行文件自身的操作(例如:创建.删除等),只能依靠java.io.File类完成. File类的常用操作方法 No. 方法 类型 描述 1 p ...

  4. java 遍历file_JAVA File类(文件的遍历,创建,删除)

    File类构造函数 File f1=new File("H://asc//");//传入文件/目录的路径 File f2=new File(f1,"test.txt&qu ...

  5. IO-1(Java IO、File类)

    1. 简介 之前的程序,数据都存储在内存中,一旦运行结束,数据消失. 数据持久化存储:将内存中的数据存储到内存以外的持久化设备中(硬盘,光盘.U盘等). OS中,数据都保存文件存放在相应的文件夹. 集 ...

  6. 四十一、深入Java中的 File类

    @Author:Runsen @Date:2020/6/6 作者介绍:Runsen目前大三下学期,专业化学工程与工艺,大学沉迷日语,Python, Java和一系列数据分析软件.导致翘课严重,专业排名 ...

  7. Java 核心五个类(File、Outputstream、Inputstream、Reader、Writer)一个接口(Serializable)...

    java BIO(阻塞式IO)    java.io 核心五个类(File.Outputstream.Inputstream.Reader.Writer)一个接口(Serializable) 1.Fi ...

  8. java类无法调用值,Kotlin无法调用到Java中定义的interface类的问题记录

    问题产生原因概述 一个kotlin类,调用一个Java类中的一个方法.引发了下面这个错误. 因为我在kotlin中调用了了java代码中定义的一个接口,然后就报错一个IllegalAccessErro ...

  9. 【java笔记】File类(2):获取,判断,创建,删除,遍历目录方法

    [java笔记]File类(1)概述,静态成员,构造方法_m0_52043808的博客-CSDN博客 获取功能方法: public String getAbsolutePath():返回此File的绝 ...

最新文章

  1. Javascript中使用WScript.Shell对象执行.bat文件和cmd命令
  2. MFC的进程和线程,非正常终止
  3. python读取excel数据并饼图_python生成excel表格以及饼图 示例源码
  4. 【深度学习】一文详解RNN及股票预测实战(Python)!
  5. 【JeeSite】用户管理
  6. [html] html5哪些标签可以优化SEO?
  7. VS2012 发布网站步骤
  8. [数据库]---mysql数据库 使用binlog+canal或binlake进行数据库的复制
  9. node+express创建第一个node项目
  10. kaggle房价预测特征意思_机器学习-kaggle泰坦尼克生存预测(一)-数据清洗与特征构建...
  11. 对不起,你以前学的 ElasticSearch 都是垃圾!
  12. mysql+安全性语言实验,实验四--数据库的安全性、完整性控制
  13. 计算机服务中无spool,打印服务SPOOLSV.EXE自动停止
  14. 「精品」无损批量压缩图片工具 - Caesium Image Compressor
  15. 微信小程序推流拉流live-pusher/live-player示例,使用本地搭建RTMP服务
  16. SSLOJ 1323.交流
  17. 前端安全之XSS攻击详解
  18. 电源服务器原理,破坏性拆解一个HP服务器1300W的电源 【精华】
  19. 云原生数据库VS传统数据库
  20. fastjson的JSONObject数据保证顺序

热门文章

  1. 阿里云高校君一岁啦!
  2. 从 Android 到 Java:如何从不同视角解决问题?
  3. 写那么多年Java,还不知道啥是Java agent的必须看一下!
  4. java防止批量攻击_java 防止 XSS 攻击的常用方法总结
  5. php歌声美化_PHP代码在线格式化美化工具
  6. 表的连接方式:NESTED LOOP、HASH JOIN、SORT MERGE JOIN
  7. Oracle 11g 新特性简介
  8. Vue利用Vue.extend()实现自定义弹出框
  9. 【学习】SpringBoot之自定义拦截器
  10. Json,Hashlib与Base64(占坑待补)