Java之文件输入输出流的使用

本文详细介绍了Java中File类的使用,包括构造方法、文件/目录的创建、重命名和删除,以及文件属性的判断和获取。此外,还讨论了Java的流分类,字节流与字符流的区别,并通过实例展示了FileInputStream和FileOutputStream如何进行文件读写和拷贝操作。
摘要由CSDN通过智能技术生成

File 类

一个 File 类的对象可以代表一个文件或者一个目录的路径,可以是相对路径也可以是绝对路径.当创建了一个对象后,就可以使用这个对象对其指定的目录/文件进行各种各样的操作了.

构造方法

方法 说明
File(String pathname) 根据一个路径得到File对象
File(String parent, String child) 根据一个目录和一个子文件/目录得到File对象
File(File parent, String child) 根据一个父File对象和一个子文件/目录得到File对象

就拿我电脑里的 “D:\tme\tmp\FileDemo.txt” 举例,第一个构造方法来获取对象这么写就行: File file = new File("D:/tme/tmp/FileDemo.txt")

第二个构造方法这么写: File file = new File("D:/tme/tmp","FileDemo.txt")

第三个构造方法需要现有一个 File 对象作为父级目录,然后再获得父级目录下面的子目录或子文件:

//先得dě有一个父级目录的对象
File par = new File("D:/tme/tmp");
//从父级目录获得子级对象
File file = new File(par, "FileDemo.txt");

参数地址也可以用斜杠而不用反斜杠,记得使用双斜杠转义一下:

new File("D:\\tme\\tmp\\FileDemo.txt")

new File("D:\tme\tmp\FileDemo.txt")

比较常用的方法

目录/文件创建
方法 说明
boolean createNewFile() 创建文件,如果存在则不创建
boolean mkdir() 创建文件夹,如果存在则不创建
boolean mkdirs() 创建文件夹,如果父文件夹不存在,会帮你创建出来
createNewFile()

使用该方法创建一个新文件,新文件的父级目录必须是已经存在的,记得写异常处理(IDE 生成即可)

//在指定目录创建一个txt文档
File file = new File("D:/tmp/tmp/FileDemo.txt");
try {
   
    file.createNewFile();
} catch (IOException e) {
   
    e.printStackTrace();
}

如果父级目录不存在则会报错,最后一行指出错误的类名以及行数

java.io.IOException: 系统找不到指定的路径。

at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1012)
at File.FileCreateDemo.main(FileCreateDemo.java:10)

mkdir()

使用该方法创建一个新文件夹,新文件夹的父级目录必须是已经存在的

File file = new File("D:/tmp/tmp");
file.mkdir();

这里不需要异常捕捉,父级目录不存在不会报错但也不会创建新的目录

mkdirs()

使用该方法创建一个新文件夹,如果指定的父级目录不存在,照样给你创建出来

File file = new File("D:/tmp/tmp");
file.mkdirs();

不需要捕捉异常,我的电脑里 D 盘没有 tmp 这个文件夹,现在不仅有了而且还有一个 tmp 子文件夹

绝对地址/相对地址: 如果不写盘符或者根目录,则创建的文件/文件夹会产生于 IDE 的项目文件夹里


重命名和删除
方法 说明
boolean renameTo(File dest) 把文件重命名为指定的文件路径
boolean delete() 删除文件或者文件夹
renameTo(File dest)

使用该方法对 File 对象进行重命名或者移动/重命名操作

如果目标对象指定的路径和源对象的路径相同,则进行重命名操作:

File file = new File("D:/tme/tmp/FileDemo.txt");
file.renameTo(new File("D:/tme/tmp/FileRenameDemo.txt"));

renameTo() 方法中传入的是 File 类的对象这里简写直接 new 了一个,也可以老老实实的创建对象后再使用:

File dest = new File("D:/tme/tmp/FileRenameDemo.txt");
file.renameTo(dest);

这样一来,FileDemo.txt 就被重命名为 FileRenameDemo.txt 了

如果目标对象指定的路径和源对象的路径不同,则进行移动操作,也可以移动的同时重命名:

File file = new File("D:/tme/tmp/FileRenameDemo.txt");
file.renameTo(new File("D:/tme/FileDemo.txt"));

D:/tme/tmp 文件夹下的 FileRenameDemo.txt 被移动到 D:/tme 文件夹并且重命名为 FileDemo.txt

delete()

使用该方法将会直接删除文件或文件夹,连回收站都找不到(不会走系统回收站)

File file = new File("D:/tme/tmp/FileRenameDemo.txt");
file.delete();

文件/文件夹属性判断
方法 说明
boolean isDirectory() 判断是否是目录
boolean isFile() 判断是否是文件
boolean exists() 判断文件(夹)是否存在
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值