public static void generateOutput() {
File file = new File ("C:/Users/me/Desktop/file.txt");
PrintWriter outputFile = null;
outputFile = new PrintWriter(file);
}
以上是我的代码,我试图制作一个PrintWriter来写入我在桌面上创建的名为file.txt的文件,但是我收到错误消息“未处理的异常类型,文件未找到异常”。我看过其他帖子,但不确定为什么仍然出现此错误。我也尝试过在没有File对象的情况下这样做。我希望就我哪里出错了一些指导
答案 0 :(得分:0)
Java具有异常捕获机制,可以帮助您更好地进行编程。您将必须处理一个异常FileNotFoundException
,以警告如果程序找不到您的文件会发生什么,或者您可以throws
异常。我建议学习Java中的异常处理。
这段代码可以帮助您
public static void generateOutput() {
File file = new File ("C:/Users/me/Desktop/file.txt");
PrintWriter outputFile = null;
try {
outputFile = new PrintWriter(file);
} catch (FileNotFoundException e) {
// Handle if your file not found
e.printStackTrace();
}
}
或
public static void generateOutput() throws FileNotFoundException {
File file = new File ("C:/Users/me/Desktop/file.txt");
PrintWriter outputFile = null;
outputFile = new PrintWriter(file);
}
答案 1 :(得分:0)
假设文件位于给定位置,则需要以下之一,
公共静态void generateOutput()引发异常{...您的代码...}
或
try {
//Your code
}
catch(FileNotFoundException fnne) {
// Precise exception catching example
}
catch(Exception e) {
// Not required, but adding it to catch any other exception you might face
}
您总是可以在throw / catch中使用精确的异常。您需要它,因为PrintWriter
可能具有编译时异常。基本上,这意味着如果找不到文件,那么它将引发异常,并且在编译时就知道了。因此,您需要使用一种方法。
除此之外,您还可以按照以下步骤将2行变成1,
PrintWriter输出=新的PrintWriter(文件);
除非您有意将输出对象初始化为null,否则无需将其初始化为空。
答案 2 :(得分:0)
您在这里必须了解的最重要的想法是,您的文件可能会:
在上述所有情况下,触发OS内核的Java程序都会崩溃,并且例外会在运行时发生。为了避免发生这种情况,Java设计人员决定(并且做得很好),PrintWriter
应该抛出(意味着有可能抛出)FileNotFoundException
,并且这应该是在编译时检查的异常。这样,开发人员将避免出现更严重的运行时问题,例如程序暗恋。
因此,您要么必须:
try-catch
在您的方法中为PrintWriter;或我认为,您的问题是为什么会发生 。这是两者的答案-(1)为什么?和(2)如何解决。