我正在尝试创建一个将字符串输出到文本文件的简单程序。使用我在这里找到的代码,我将以下代码放在一起:
import java.io.*;
public class Testing {
public static void main(String[] args) {
File file = new File ("file.txt");
file.getParentFile().mkdirs();
PrintWriter printWriter = new PrintWriter(file);
printWriter.println ("hello");
printWriter.close();
}
}
J-grip向我抛出以下错误:
----jGRASP exec: javac -g Testing.java
Testing.java:10: error: unreported exception FileNotFoundException; must be caught or declared to be thrown
PrintWriter printWriter = new PrintWriter(file);
^
1 error
----jGRASP wedge2: exit code for process is 1.
由于我对Java很陌生,我不知道这意味着什么。任何人都能指出我正确的方向吗?
答案 0 :(得分:9)
您没有告诉编译器有可能抛出FileNotFoundException
如果文件不存在,将抛出FileNotFoundException
。
试试这个
public static void main(String[] args) throws FileNotFoundException {
File file = new File ("file.txt");
file.getParentFile().mkdirs();
try
{
PrintWriter printWriter = new PrintWriter(file);
printWriter.println ("hello");
printWriter.close();
}
catch (FileNotFoundException ex)
{
// insert code to run when exception occurs
}
}
答案 1 :(得分:1)
如果文件出现问题,PrintWriter
可能会抛出异常,就好像文件不存在一样。所以你必须添加
public static void main(String[] args) throws FileNotFoundException {
然后它将编译并使用try..catch
子句来捕获和处理异常。
答案 2 :(得分:1)
如果您对Java非常陌生,并且只是尝试学习如何使用PrintWriter
,那么这里有一些简单的代码:
import java.io.*;
public class SimpleFile {
public static void main (String[] args) throws IOException {
PrintWriter writeMe = new PrintWriter("newFIle.txt");
writeMe.println("Just writing some text to print to your file ");
writeMe.close();
}
}
答案 3 :(得分:0)
这意味着当您调用new PrintWriter(file)
时,它可能会抛出异常。您需要处理该异常,或者让您的程序能够重新抛出它。
import java.io.*;
public class Testing {
public static void main(String[] args) {
File file = new File ("file.txt");
file.getParentFile().mkdirs();
PrintWriter printWriter;
try {
printwriter = new PrintWriter(file);
printWriter.println ("hello");
printWriter.close();
} catch (FileNotFoundException fnfe) {
// Do something useful with that error
// For example:
System.out.println(fnfe);
}
}