Java中的IO操作/学习过程中见到的太多了复习记录一下

87 阅读2分钟

File相关知识

创建File对象的几种方式

File file = new File(filePath);

1 第一种直接根据文件名字

可以直接输入文件/文件夹所在的路径直接进行创建 对应的源代码如下

public File(String pathname)

2 第二种根据父File对象加上子文件的String path进行创建

public File(File parent, String child) 
File file = new File("/Users/zhangzhiwei/Desktop/测试/");
File file1 = new File(file, "news2.txt");

其实这种方式就是提前创建好目录对应的File对象,然后加上子文件夹或者文件对应的String path共同进行创建这样可以明确路径的分层。

3 第三种根据父String path 和子String path一起组合来创建文件

public File(String parent, String child) 

必要的说明

这里要做一个必要的说明,在创建File对象的时候对于2,3两种方式其实不太关心这个结尾是不是有/或者子路径的开头是不是有/甚至二者都没有都行。系统内部会自动用/连接起来。这两种方式的重点其实主要是一个表示父路径一个表示子路径。同时这个子路径最后一定是以某个名字结尾的例如txt jpg什么的 其实什么后缀也没有也可以,这样创建的文件也能进行读写。
如果需要创建文件那么就需要用到

createNewFile()

这个方法,这个方法可以成功执行的前提是,路径必须存在--组合出的路径必须存在。并且根据File的createNewFile方法是不会创建一个目录结构的,因此不管是结尾是不是带.后缀名,都会创建一个文件,而不是一个文件夹

文件的删除以及是否存在的判断

file.exists()
file.delete()

注意,这个删除,删除的是当前的文件,或者当前的文件夹但是这个文件夹必须是空的。如果这个文件被别的进程占用,那么就不会被删除。

创建目录

file.mkdir()

这个创建出来的才是真正意义上的目录,而不是可编辑的没有后缀名的文件。但是只能创建一级目录

file.mkdirs()

这个是可以创建多级目录的。

总之呢,要记住一点,创建一个name=abc的文件和name=abc的目录是不一样的。createNewFile是创建一个文件 mkdir才是创建一个目录。