Java File类的概述及常用方法使用详解
File类的简介
在Java程序中,File类是用来操作文件和目录的一种标准化方法,它提供了一系列方法用来获取文件或目录的信息,以及对它们进行读写操作。File类提供了很多的方法来操作文件和目录,能够满足大多数文件和目录的基本操作需求。
File类的常用方法
File类提供了很多方法,但常用的方法主要有以下几个:
构造方法
File类的构造方法有以下几种,分别用于创建不同类型的文件和目录:
File(String pathname)
:使用指定的路径名字符串创建一个File对象,可以是相对路径或绝对路径。File(String parent,String child)
:使用指定的父路径字符串和子路径字符串创建一个新的File对象。File(File parent, String child)
:使用指定的父抽象路径名和子路径名字符串创建一个新的File对象。File(URI uri)
:通过将给定的 file: URI 转换为一个抽象路径名来创建一个File对象。
例如:
File file = new File("test.txt"); // 相对路径
File dir = new File("d:/test/"); // 绝对路径
// File对象还可以使用URI创建,例如:
URI uri = new URI("file://d:/test/test.txt");
File file = new File(uri);
获取信息
exists()
:判断所指定的文件或目录是否存在。isFile()
:判断File对象所指定的是否是一个文件。isDirectory()
:判断File对象所指定的是否是一个目录。length()
:获取当前文件的大小,单位为字节(byte)。lastModified()
:获取当前文件的最后修改时间,以毫秒为单位。
例如:
File file = new File("test.txt");
if(file.exists()){
if(file.isFile()){
System.out.println(file.getName() + "是一个文件,大小为:" + file.length() + "字节");
}else{
System.out.println(file.getName() + "是一个目录");
}
}else{
System.out.println("文件不存在");
}
文件操作
createNewFile()
:创建一个新的空文件,如果文件已经存在,则不创建。如果是创建多级目录下的新文件,应该先创建目录。delete()
:删除所指定的文件或目录。如果File对象所指定的是目录,那么目录里面不能有文件或子目录,否则删除失败。renameTo(File dest)
:将当前File对象所代表的文件或目录更名为dest所代表的文件或目录。
例如:
File file = new File("test.txt");
if(!file.exists()){
file.createNewFile();
System.out.println("创建文件:" + file.getName() + "成功");
}else{
System.out.println("文件已经存在");
}
File dir = new File("d:/test");
dir.mkdir(); // 创建目录
file.delete(); // 删除文件
file.renameTo(new File("test1.txt")); // 更名
目录操作
list()
:列出当前目录下的所有文件和子目录的名称,返回一个字符串数组。listFiles()
:列出当前目录下的所有文件和子目录的File对象,返回一个File数组。mkdir()
:创建一个新目录,只有在不存在时才会创建。mkdirs()
:创建一个多层目录树,只有在不存在时才会创建。
例如:
File dir = new File("d:/test");
File[] files = dir.listFiles(); // 获取目录下的文件和目录
String[] filenames = dir.list(); // 获取目录下的文件和目录的名称
dir.mkdir(); // 创建单层目录
dir.mkdirs(); // 创建多层目录
示例
示例一:读取文件内容
以下代码可以读取一个文件的内容:
public String readFile(String fileName) {
File file = new File(fileName);
StringBuilder sb = new StringBuilder();
try{
BufferedReader br = new BufferedReader(new FileReader(file));
String line = null;
while ((line = br.readLine())!=null){
sb.append(line + "\n");
}
br.close();
}catch(Exception e){
e.printStackTrace();
}
return sb.toString();
}
- 首先,使用File类的构造方法生成一个文件对象
file
; - 然后,通过
BufferedReader
读取文件内容,并把读取到的每一行拼接在一起,最终返回一个字符串。
示例二:复制文件
以下代码可以将一个文件复制到指定目录下:
public boolean copyFile(String source, String target) {
File sourceFile = new File(source);
File targetFile = new File(target);
FileInputStream inStream = null;
FileOutputStream outStream = null;
try {
inStream = new FileInputStream(sourceFile);
outStream = new FileOutputStream(targetFile);
byte[] buffer = new byte[1024];
int length;
while ((length = inStream.read(buffer)) > 0) {
outStream.write(buffer, 0, length);
}
} catch (IOException e) {
e.printStackTrace();
return false;
} finally {
try {
inStream.close();
outStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return true;
}
- 首先,使用
File
类的构造方法生成源文件对象sourceFile
和目标文件对象targetFile
; - 然后,使用
FileInputStream
读取源文件,使用FileOutputStream
写入目标文件。
以上就是Java File类的概述及常用方法使用详解,我们可以根据具体需求灵活使用File类的各种方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java File类的概述及常用方法使用详解 - Python技术站