Java IO流系列① -- File类

举报
十八岁讨厌编程 发表于 2022/08/06 01:48:40 2022/08/06
【摘要】 目录 File类的使用File类的常用构造器路径分隔符 File的常用方法File的获取功能相关方法File类的重命名功能File类的判断功能File类的创建功能File类的删除功能 ...

File类的使用

基本概念

  • 文件和目录路径名的抽象表示形式

  • java.io.File类的一个对象(可能)代表一个文件或一个文件目录(俗称:文件夹),与平台无关。

  • File 能新建、删除、重命名文件和目录,但 File 不能访问文件内容本身。如果需要访问文件内容本身,则需要使用输入/输出流。

  • 想要在Java程序中表示一个真实存在的文件或目录,那么必须有一个File对象,但是Java程序中的一个File对象,可能没有一个真实存在的文件或目录。

  • File对象可以作为参数传递给流的构造器,指明读取或写入的"终点".

File类的常用构造器

File类有4个构造器,其中前三个比较常用
File的构造器

①public File(String filePath)
以pathname为路径创建File对象,可以是绝对路径或者相对路径(如果pathname是相对路径,则默认的当前路径在系统属性user.dir中存储)。
例如:

//构造器1:
File file1 = new File("hello.txt");//相对于当前module
File file2 =  new File("D:\\workspace_idea1\\JavaSenior\\day08\\he.txt");
System.out.println(file1);
-->hello.txt
System.out.println(file2);
-->D:\workspace_idea1\JavaSenior\day08\he.txt

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

注:此处多出来的""为转义符,防止与后面的字符相组合构成歧义。

②public File(String parent,String child)
以parent为父路径,child为子路径创建File对象
可以理解为child表示的是本身的文件或文件目录,而parent指明的是你的上一层目录。
例如:

//构造器2:
File file3 = new File("D:\\workspace_idea1","JavaSenior");
System.out.println(file3);
-->D:\workspace_idea1\JavaSenior

  
 
  • 1
  • 2
  • 3
  • 4

③public File(File parent,String child)
根据一个父File对象和子文件路径创建File对象
例如:

File file4 = new File(file3,"hi.txt");
System.out.println(file4);
-->D:\workspace_idea1\JavaSenior\hi.txt

  
 
  • 1
  • 2
  • 3

路径分隔符

路径分隔符与系统有关:

  • windows和DOS系统默认使用“\”来表示
  • UNIX和URL使用“/”来表示

为了解决这个隐患,File类提供了一个常量:
public static final String separator。根据操作系统,动态的提供分隔符。

例如:

File file1 = new File("d:\\java\\info.txt");
File file2 = new File("d:" + File.separator + "java" + File.separator + "info.txt");

  
 
  • 1
  • 2

File的常用方法

File的获取功能相关方法

①public String getAbsolutePath():获取绝对路径
②public String getPath() :获取路径
③public String getName() :获取名称
④public String getParent():获取上层文件目录路径。若无,返回null
⑤public long length() :获取文件长度(即:字节数)。不能获取目录的长度。
⑥public long lastModified() :获取最后一次的修改时间,毫秒值

–>以下两种方法适用于文件目录
⑦public String[] list() :获取指定目录下的所有文件或者文件目录的名称数组
⑧public File[] listFiles() :获取指定目录下的所有文件或者文件目录的File数组

File类的重命名功能

  • public boolean renameTo(File dest):把文件重命名为指定的文件路径

:比如:file1.renameTo(file2)为例:
要想保证返回true,需要file1在硬盘中是存在的,且file2不能在硬盘中存在。

File类的判断功能

①public boolean isDirectory():判断是否是文件目录
②public boolean isFile() :判断是否是文件
③public boolean exists() :判断是否存在
④public boolean canRead() :判断是否可读
⑤public boolean canWrite() :判断是否可写
⑥public boolean isHidden() :判断是否隐藏

File类的创建功能

  • public boolean createNewFile() :创建文件。若文件存在,则不创建,返回false
  • public boolean mkdir() :创建文件目录。如果此文件目录存在,就不创建了。如果此文件目录的上层目录不存在,也不创建。
  • public boolean mkdirs() :创建文件目录如果上层文件目录不存在,一并创建

注意事项:如果你创建文件或者文件目录没有写盘符路径,那么,默认在项目路径下。

File类的删除功能

  • public boolean delete():删除文件或者文件夹

删除注意事项
Java中的删除不走回收站。
要删除一个文件目录,请注意该文件目录内不能包含文件或者文件目录。

文章来源: blog.csdn.net,作者:十八岁讨厌编程,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/zyb18507175502/article/details/122391205

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。