JAVA I/O小结(一)——File类

JAVA I/O小结(一)——File类

什么是I/O流?
答:对任何程序设计语言来说,输入输出(Input/Output)系统都是非常核心的功能。

  1. 输入(Input):就是将外部的数据读取到程序当中(以程序为基准,核心含义是“读”);如读取硬盘的文件到程序;读取网络上某个位置内容到程序;读取数据库系统的数据到程序;读取某些硬件系统到程序。

  2. 输出(Output):在处理数据时,需要将数据写到外部(以程序为基准,核心含义是“写”);如将数据写到硬盘中;将数据写到数据库系统中;将数据写到某些硬件系统中。

  3. java.io包为我们提供了相关的API,实现了所有外部系统的输入输出操作。



前言

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

File对象可以作为参数传递给流的构造函数

File类的常见构造方法:

public File(String name)

以name为路径创建File对象,可以是绝对路径或者相对路径,如果name是相对路径,则默认的当前路径在系统属性user.dir中存储。

public File(String parent,String child)

以parent为父路径,child为子路径创建File对象。
File的静态属性string separator存储了当前系统的路径分隔符。
在UNIX中,此字段为 ’ / ’ ,在Windows中,为 ’ \\ ’ 。


创建文件test123与456两个文本文件在代码根目录中,目的是为了展示以下方法

文件

一、访问文件名

1.getName()

获取文件名。

File f = new File("./test123.txt");
System.out.println(f.getName());//获取文件名

结果:
get name

2.getPath()

获取文件相对路径,就是创建对象时写的路径。

File f = new File("./test123.txt");
System.out.println(f.getPath());//获取创建时写的文件路径

结果:
get path

3.getAbsolutePath()

获取文件绝对路径。

File f = new File("./test123.txt");
System.out.println(f.getAbsolutePath());//获取文件路径+构造时的参数
// System.out.println(f.getCanonicalPath());//获取绝对路径,会报错,需要抛出异常

结果:
getAbsoluteFile

4.getParent()

获取文件父级文件路径。

File f = new File("D:/ZZZ_java_test/ZX_java_test/test123.txt");
System.out.println(f.getParent());//获取文件父级文件路径,以创建时编写的为准

结果:
getParent

5.renameTo(File newName)

对文件进行重命名。

File f = new File("./test123.txt");
System.out.println(f.exists());//判断文件是否存在(文件检测)此时存在
f.renameTo(new File("D:/ZZZ_java_test/ZX_java_test/test456.txt"));//重命名,文件路径必须相同
System.out.println(f.exists());//再次判断文件是否存在(文件检测)稀释文件名为test456,所以不存在

结果:
renameTo
重命名

二、文件检测

1.exists()

判断文件是否存在,返回true或false。重命名处有演示,这里不赘述。

2.canRead()与canWrite()

判断文件能否可读 / 可写,返回true或false。这里放在啊一起讲解。

File f = new File("./test123.txt");
System.out.println(f.canRead());//判断是否可读
System.out.println(f.canWrite());//判断是否可写

结果:
原始状态:
可读可写
可读可写结果
修改为只读:
可读不可写
可读不可写结果

3.isFile()

判断是文件,返回true或false。

File f = new File("./test123.txt");
System.out.println(f.isFile());//判断是文件

isFile

4.isDirectory()

判断是目录(文件夹),返回true或false。

File f = new File("./test123.txt");
System.out.println(f.isDirectory());//判断是目录

isDirectory

三、获取常规文件信息

1.lastModify()

文件最后修改时间,返回的是个毫秒数。

File f = new File("./test123.txt");
System.out.println(f.lastModified());//文件最后修改时间

结果:
lastModify

2.length()

判断文件长度,这里文件中写入数据:
原始文件数据

File f = new File("./test123.txt");
System.out.println(f.length());//判断长度,字节,utf-8中文每字3字节

结果:
Length

四、文件操作相关

1.createNewFile()

创建文件。

File f1 = new File("D:/ZZZ_java_test/ZX_java_test/test456.txt");
        System.out.println(f1.exists());
        System.out.println("=====创建文件=====");
        if (!f1.exists()){//判断是否存在
            try{
                f1.createNewFile();//创建文件
            }catch (IOException e){
                e.printStackTrace();
            }
        }
        System.out.println(f1.exists());

结果:
createNewFile
新建结果

2.delete()

删除文件。

f1.delete();//删除文件
System.out.println(f1.exists());

结果:
delete
删除结果

五、目录操作相关

1.mkdir()与mkdirs()

创建单层 / 多层目录(文件夹)。

File f5 = new File("D:/ZZZ_java_test/ZX_java_test/a/b/c/d/e");
f5.mkdirs();//创建多级目录

结果:
mkdirs

2.list()

路径里所有文件的文件名称。

File f2 = new File("D:/ZZZ_java_test/ZX_java_test");
   String[] s = f2.list();//返回路径文件夹下的文件名称
   for(String s1 : s){
   	  System.out.println("文件名:" + s1);
   }

结果:
list

3.listFiles()

路径里所有文件的文件路径。

File f2 = new File("D:/ZZZ_java_test/ZX_java_test");
File[] ff = f2.listFiles();//返回路径文件夹下的file对象,路径
   for(File fff : ff){
   	  System.out.println("文件路径:" + fff);
   }

结果:
listFiles


继续下一章学习:

JAVA I/O小结(二)——File类的递归遍历

如有问题欢迎指正
参考:
https://blog.csdn.net/Xun_independent/article/details/114803602.

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值