我遇到以下代码时遇到问题。我正在尝试写一个.ppm文件,我得到了
Red.java:6:未报告的异常java.io.FileNotFoundException;必须被抓住或宣布被抛出 FileOutputStream fout = new FileOutputStream(fileName); ^ 有什么想法吗?
import java.io。*;
公共班级红色{
public static void main(String args[]) {
String fileName = "RedDot.ppm";
FileOutputStream fout = new FileOutputStream(fileName);
DataOutputStream out = new DataOutputStream(fout);
System.out.print("P6 1 1 255 ");
System.out.write(255);
System.out.write(0);
System.out.write(0);
System.out.flush();
}
}
答案 0 :(得分:3)
FileNotFoundException是一个已检查的异常。您需要在try / catch块中包含要写入文件的代码,或抛出异常。
答案 1 :(得分:3)
最简单的解决方案是重写您的主声明:
public static void main(String args[]) throws FileNotFoundException {...
因此表明如果它无法创建输出流(无论出于何种原因)可能抛出此异常。请注意,在这种情况下,FileNotFoundException不是异常的最佳名称,但这是您无法处理的命名问题。
实际上,可能想在上面的IOException
throws子句中声明main()
。您正在调用的不同方法将被声明为抛出此变体。
答案 2 :(得分:0)
您是否在记事本中编写代码?尝试使用Eclipse。它会强调带有未捕获异常问题的代码,然后您可以将光标放在带下划线的部分(产生错误的行)中,按Ctrl+1
获取解决方案列表,然后在列表中选择一个。我想用try{}catch{}
来围绕这个区块会引起异常,除非你想要对它做些什么。
答案 3 :(得分:0)
代码中未处理FileNotFoundException。添加FileOutputStream fout = new FileOutputStream(fileName); try catch block之间会解决问题。
import java.io.*;
public class Red {
public static void main(String args[]) {
String fileName = "RedDot.ppm";
try
{
FileOutputStream fout = new FileOutputStream(fileName);
DataOutputStream out = new DataOutputStream(fout);
}catch(FileNotFoundException fnfExcep){
System.out.println("Exception Occurred " + fnfExcep.getMessage() );
}
System.out.print("P6 1 1 255 ");
System.out.write(255);
System.out.write(0);
System.out.write(0);
System.out.flush();
}
}