无法写入 Java 中创建的 HTML 文件
Cannot write to created HTML file in Java
这是我的代码:
public static void create() {
String path = FileSystemView.getFileSystemView().getHomeDirectory().getAbsolutePath() + "\JWPLfile";
int index = 0;
while (true) {
try {
File f = new File(path + index + ".html");
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write(fileContent);
break;
} catch (Exception e) {
index++;
}
}
}
但是新创建的 HTML 文件是空的,尽管 fileContent 不是。
您需要确保文件已关闭。使用 try-with-resources,如:
File f = new File(path + index + ".html");
try (FileWriter fw = new FileWriter(f)) {
BufferedWriter bw = new BufferedWriter(fw);
bw.write(fileContent);
break;
} catch (Exception e) {
index++;
}
请注意,(基本上)空的 catch
块将对您隐藏任何异常。不是个好主意。
此外,while(true)
和 break
是不必要的。
正如 Jim 的回答所说,空的 catch 块不是一个好主意。而是首先检查文件是否存在并递增 index
直到它不存在:
int index = 0;
File f;
do {
f = new File(path + index++ + ".html");
} while (f.exists())
...
这是我的代码:
public static void create() {
String path = FileSystemView.getFileSystemView().getHomeDirectory().getAbsolutePath() + "\JWPLfile";
int index = 0;
while (true) {
try {
File f = new File(path + index + ".html");
BufferedWriter bw = new BufferedWriter(new FileWriter(f));
bw.write(fileContent);
break;
} catch (Exception e) {
index++;
}
}
}
但是新创建的 HTML 文件是空的,尽管 fileContent 不是。
您需要确保文件已关闭。使用 try-with-resources,如:
File f = new File(path + index + ".html");
try (FileWriter fw = new FileWriter(f)) {
BufferedWriter bw = new BufferedWriter(fw);
bw.write(fileContent);
break;
} catch (Exception e) {
index++;
}
请注意,(基本上)空的 catch
块将对您隐藏任何异常。不是个好主意。
此外,while(true)
和 break
是不必要的。
正如 Jim 的回答所说,空的 catch 块不是一个好主意。而是首先检查文件是否存在并递增 index
直到它不存在:
int index = 0;
File f;
do {
f = new File(path + index++ + ".html");
} while (f.exists())
...