Java 获取文件未找到PrintWriter和文件异常
上面是我的代码,我正在尝试制作一个PrintWriter,它可以写入我在桌面上制作的名为file.txt的文件,但是我遇到了错误“未处理的异常类型,文件未找到异常”。我看过其他帖子,我不确定为什么我仍然会犯这个错误。我也尝试过在没有File对象的情况下这样做。我希望得到一些关于我哪里出错的指导Java有一种异常捕获机制,可以帮助您更好地编程。您必须处理一个异常Java 获取文件未找到PrintWriter和文件异常,java,file,io,output,printwriter,Java,File,Io,Output,Printwriter,上面是我的代码,我正在尝试制作一个PrintWriter,它可以写入我在桌面上制作的名为file.txt的文件,但是我遇到了错误“未处理的异常类型,文件未找到异常”。我看过其他帖子,我不确定为什么我仍然会犯这个错误。我也尝试过在没有File对象的情况下这样做。我希望得到一些关于我哪里出错的指导Java有一种异常捕获机制,可以帮助您更好地编程。您必须处理一个异常FileNotFoundException,以警告如果程序找不到您的文件或您可以抛出此异常会发生什么。我建议学习Java中的异常处理。 此
FileNotFoundException
,以警告如果程序找不到您的文件或您可以抛出此异常会发生什么。我建议学习Java中的异常处理。
此代码可以帮助您
public static void generateOutput() {
File file = new File ("C:/Users/me/Desktop/file.txt");
PrintWriter outputFile = null;
outputFile = new PrintWriter(file);
}
或
Java有一种异常捕获机制,可以帮助您更好地编程。您必须处理一个异常FileNotFoundException
,以警告如果程序找不到您的文件或您可以抛出此异常会发生什么。我建议学习Java中的异常处理。
此代码可以帮助您
public static void generateOutput() {
File file = new File ("C:/Users/me/Desktop/file.txt");
PrintWriter outputFile = null;
outputFile = new PrintWriter(file);
}
或
假设您的文件存在于给定的位置,则需要以下选项之一:
public static void generateOutput()引发异常{…您的代码…}
或
在抛出/捕获中始终可以使用精确异常。您需要它,因为,PrintWriter
可能有编译时异常。基本上,这意味着若并没有找到该文件,那个么它可以抛出异常,并且在编译时已知该异常。因此,您需要使用其中一种方法
除此之外,您还可以将2行变成1行,如下所示
PrintWriter输出=新的PrintWriter(文件)
您不需要将输出对象初始化为null,除非您是故意这样做的。假设您的文件存在于给定的位置,您需要以下选项之一:
public static void generateOutput()引发异常{…您的代码…}
或
在抛出/捕获中始终可以使用精确异常。您需要它,因为,PrintWriter
可能有编译时异常。基本上,这意味着若并没有找到该文件,那个么它可以抛出异常,并且在编译时已知该异常。因此,您需要使用其中一种方法
除此之外,您还可以将2行变成1行,如下所示
PrintWriter输出=新的PrintWriter(文件)
您不需要将输出对象初始化为null,除非您是故意这样做的。这里您需要了解的最重要的一点是,您的文件可能:
找不到李>
将其描述符锁定(这意味着其他进程使用它)李>
腐败李>
被写保护
在上述所有情况下,触发OS内核的Java程序将崩溃,异常将发生在运行时。为了避免这一事故,Java设计人员决定(他们做得很好),PrintWriter
应该抛出(也就是说,有可能抛出)FileNotFoundException
,并且这应该是编译时检查的异常。这样,开发人员将避免更严重的运行时问题,如程序崩溃
因此,您必须:
在PrintWriter的方法中尝试catch
;或
将异常抛出一级
我想,你的问题是为什么会这样。以下是两个问题的答案:(1)为什么?以及(2)如何解决问题。这里您必须了解的最重要的想法是,您的文件可能:
找不到李>
将其描述符锁定(这意味着其他进程使用它)李>
腐败李>
被写保护
在上述所有情况下,触发OS内核的Java程序将崩溃,异常将发生在运行时。为了避免这一事故,Java设计人员决定(他们做得很好),PrintWriter
应该抛出(也就是说,有可能抛出)FileNotFoundException
,并且这应该是编译时检查的异常。这样,开发人员将避免更严重的运行时问题,如程序崩溃
因此,您必须:
在PrintWriter的方法中尝试catch
;或
将异常抛出一级
我想,你的问题是为什么会这样。以下是两个问题的答案:(1)为什么?(2)如何解决。如果文件存在,则在方法签名中添加try-catch或add-throws异常如果文件存在,则在方法签名中添加try-catch或add-throws异常
public static void generateOutput() throws FileNotFoundException {
File file = new File ("C:/Users/me/Desktop/file.txt");
PrintWriter outputFile = null;
outputFile = new PrintWriter(file);
}
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
}