详解Java中的File文件类以及FileDescriptor文件描述类
1. File文件类
1.1 什么是File文件类
Java中的File
类用于表示文件或目录的路径名,是访问文件系统中的文件或目录的主要类。通过File
类,可以创建、删除、重命名文件或目录,或访问文件或目录的各种属性。
1.2 File类的构造方法
-
File(String path)
:根据给定的路径名创建一个新的文件或目录。 -
File(String parent, String child)
:根据给定的父路径名和子路径名创建一个新的文件或目录。 -
File(File parent, String child)
:根据给定的父路径名和子路径名创建一个新的文件或目录。
示例:
File file1 = new File("D:/test.txt"); // 以路径名构造File对象
File file2 = new File("D:/","test.txt"); // 以父路径名和子路径名构造File对象
File file3 = new File(new File("D:/"),"test.txt"); // 以父路径和子路径名字符串构造File对象
1.3 File类的常用方法
-
createNewFile()
:创建一个新的空文件。 -
mkdir()
:创建此抽象路径名指定的目录。 -
mkdirs()
:创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。 -
delete()
:删除此抽象路径名表示的文件或目录。 -
exists()
:测试此抽象路径名表示的文件或目录是否存在。 -
isFile()
:测试此抽象路径名表示的文件是否为普通文件。 -
isDirectory()
:测试此抽象路径名表示的文件是否为目录。 -
canRead()
:测试应用程序是否可以读取此抽象路径名表示的文件。 -
canWrite()
:测试应用程序是否可以修改此抽象路径名表示的文件。 -
getName()
:返回由此抽象路径名表示的文件或目录的名称。 -
getPath()
:返回此抽象路径名的字符串形式。
示例:
File file = new File("D:/test.txt");
if(!file.exists()) {
try {
file.createNewFile(); // 创建文件
System.out.println(file.getName()+"创建成功!");
} catch (IOException e) {
e.printStackTrace();
}
} else {
file.delete(); // 删除文件
System.out.println(file.getName()+"删除成功!");
}
2. FileDescriptor文件描述类
2.1 什么是FileDescriptor文件描述类
Java中的FileDescriptor
类表示一个打开的文件、socket或其他文件描述符,是一个抽象类,不能被实例化。使用FileDescriptor可以将一个输入流与输出流结合起来,实现跨平台(不同操作系统)的流管道操作。
2.2 FileDescriptor类常用方法
-
in
:标准输入流,类型为FileDescriptor
。 -
out
:标准输出流,类型为FileDescriptor
。 -
err
:标准错误输出流,类型为FileDescriptor
。 -
sync()
:将此文件描述符的任何未保存的输出数据写入基础设备。 -
valid()
:测试此文件描述符是否有效。 -
sync()
:将此文件描述符的任何未保存的输出数据写入基础设备。 -
close()
:关闭此文件描述符。
示例:
try {
File file = new File("D:/test.txt");
FileOutputStream fos = new FileOutputStream(file);
FileInputStream fis = new FileInputStream(file);
FileDescriptor fd = fos.getFD(); // 获取文件描述对象
String str = "Hello, World!";
byte[] bytes = str.getBytes();
fos.write(bytes); // 向文件中写入字符串
fos.flush(); // 刷入到目标设备上
int n = 0;
while ((n = fis.read()) != -1) { // 从文件中读取字符
System.out.print((char)n);
}
fd.sync(); // 将输出的字符修改写入文件
fos.close(); // 关闭输出流
fis.close(); // 关闭输入流
} catch (IOException e) {
e.printStackTrace();
}
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解Java中的File文件类以及FileDescriptor文件描述类 - Python技术站