Java中使用File类进行文件操作的方法
发布时间:2023-06-21 04:20:40
Java中使用File类进行文件操作的方法非常多,本文将从创建、删除、重命名、获取文件信息、读取、写入等方面进行详细介绍。
1. 创建文件
创建单个文件的方法:
File file = new File("D:/file/test.txt");
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
创建多级目录:
File file = new File("D:/file/test/test.txt");
if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs(); //创建多级目录
}
try {
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
2. 删除文件
删除单个文件的方法:
File file = new File("D:/file/test.txt");
if (file.exists()) {
file.delete();
}
删除文件夹及其下所有文件(使用递归):
public void deleteDir(File file) {
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File f : files) {
deleteDir(f);//递归删除子目录
}
}
file.delete();
}
3. 重命名文件
单个文件重命名:
File file = new File("D:/file/test.txt");
File newFile = new File("D:/file/new.txt");
if (file.exists()) {
file.renameTo(newFile);
}
文件夹重命名(其下所有文件路径不变):
File file = new File("D:/file/test");
File newFile = new File("D:/file/new");
file.renameTo(newFile);
4. 获取文件信息
获取文件名:
File file = new File("D:/file/test.txt");
System.out.println(file.getName()); //test.txt
获取文件父目录:
File file = new File("D:/file/test.txt");
System.out.println(file.getParent()); //D:\file
获取文件大小(单位:字节):
File file = new File("D:/file/test.txt");
System.out.println(file.length());
5. 读取文件内容
使用InputStream读取文件内容:
File file = new File("D:/file/test.txt");
InputStream is = null;
try {
is = new FileInputStream(file);
byte[] buffer = new byte[1024];
int len = 0;
while ((len = is.read(buffer)) != -1) {
System.out.println(new String(buffer, 0, len));
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (is != null) {
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用BufferedReader读取文件内容(逐行读取):
File file = new File("D:/file/test.txt");
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
6. 写入文件内容
使用OutputStream写入文件内容:
File file = new File("D:/file/test.txt");
OutputStream os = null;
try {
os = new FileOutputStream(file);
String str = "Hello world!";
byte[] bytes = str.getBytes();
os.write(bytes);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (os != null) {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用BufferedWriter写入文件内容(逐行写入):
File file = new File("D:/file/test.txt");
BufferedWriter bw = null;
try {
bw = new BufferedWriter(new FileWriter(file));
String str = "Hello world!";
bw.write(str);
bw.newLine(); //换行
str = "Welcome to Java!";
bw.write(str);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (bw != null) {
try {
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
File类的使用非常灵活,可以根据实际需求进行组合使用。在进行文件操作时,需要注意文件路径格式和异常处理。
