我们在Java中相对一个文件进行操作的时候,我们就可以使用File对具体文件进行操作。首先我们需要获取到这个文件所在的路径,然后去创建一个File对象。
这个路径可以是一个绝对路径,也可以是一个相对路径。
1.文件是否存在:
我们可以利用File类中的exists()方法来查看这个文件在该路径下是否存在如果存在则返回一个true,不存在则返回false,我们也可以通过查看源码来查看返回值类型。
2.普通文件的创建和删除:
创建:我们可以使用createNewFile()来创建一个普通文件,当这个文件已经存在,则无法继续创建该文件。
删除:我们可以先用exists()方法来判断文件是否在该路径下存在,如果存在的话,我们就可以用delete()方法进行删除,注意,这是普通文件的删除,我们使用这个delete()方法时如果对应路径找到的是一个目录则不能直接通过delete()进行删除,如果这个目录为空就可以直接删除,如果目录不为空则需要把目录里面的内容清空才可以对这个目录进行删除操作。
3.判断这个文件是目录还是一个普通文件:
我们可以使用使用isFile()来判断该文件是一个文件吗?如果不是则返回false,用isDirectory()来判断是否是目录。
4.创建目录:
使用mkdir(),makeDirectory的缩写,来创建一个目录,如果目录已经存在则无法再次进行创建。
5.关于InputStream:
InputStream 只是一个抽象类,要使用还需要具体的实现类。关于 InputStream 的实现类有很多,基 本可以认为不同的输入设备都可以对应一个 InputStream 类,我们现在只关心从文件中读取,所以使 用 FileInputStream。FileInputStream里有一个read方法来进行文件内容的读取。我们有两种读取方法,我们直接使用read()方法读,另一种是先使用一个缓冲区来接收数据。相比而言后者的IO次数较少,效率较高。
利用 Scanner 进行字符读取,我们使用Scanner可以进行字符读取,我们看到了对字符类型直接使用 InputStream 进行读取是非常麻烦且困难的,所以,我 们使用一种我们之前比较熟悉的类来完成该工作,就是 Scanner 类。
通过while循环来判断是否已经读完了,如果没有读完我们使用一个字符串进行接收。
6.关于OutputStream:
OutputStream也是只是一个抽象类,要使用具体的实现类,我们使用FileOutputStream。我们可以利用FileOutputStream中的write方法来写入数据,用法和FileInputStream的read方法类似。和FileInputStream一样,FileOutputStream也可以使用利用 PrintWriter 来进行操作。
在PrintWriter中可以找到我们熟悉的方法,例如print/println/printf 方法。让我们可以更熟练的去使用。