未报告的异常java.io.FileNotFoundException;必须被抓住或宣布被抛出

时间:2011-04-21 19:11:19

标签: java exception try-catch filenotfoundexception

我正在创建一个类 - 只是一个类,没有main(),我收到错误的“未报告的异常java.io.FileNotFoundException;必须被捕获或声明被抛出”在这一行:

FileOutputStream outStr = new FileOutputStream(FILE, true);   

我不明白;我输入了一个try {} catch {}块,它仍在报告错误。

此外,它还报告了尝试和两个捕获线的“非法类型开始”,它也说';'预计这两个捕获线。

我正在使用NetBean IDE,仅供参考。

感谢您的帮助。

以下是完整代码:

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.io.FileNotFoundException;


public class UseLoggingOutputStream 
{

    String FILE = "c:\\system.txt";

    try
    {

        FileOutputStream outStr = new FileOutputStream(FILE, true);

    }

    catch(FileNotFoundException fnfe)
    {

        System.out.println(fnfe.getMessage());

    }

    catch(IOException ioe)
    {

        System.out.println(ioe.getMessage());

    }

}

5 个答案:

答案 0 :(得分:9)

您需要将文件处理语句放在方法中:

import java.io.FileOutputStream;
import java.io.FileNotFoundException;

public class UseLoggingOutputStream {
    public void myMethod() {
        String file = "c:\\system.txt";
        try {
            FileOutputStream outStr = new FileOutputStream(file, true);
        } catch(FileNotFoundException fnfe) { 
            System.out.println(fnfe.getMessage());
        } 
    }
}

答案 1 :(得分:3)

所有功能代码都需要进入方法 - 我没有在你的代码中看到一个方法 - 这是类型问题的非法开始。一旦你掌握了基础知识,其他编译错误就会变得更加清晰。

public class Foo {

  public void doSomething() {
    //code here 
  }

}

答案 2 :(得分:1)

将此代码移动到某个方法或至少移动到静态初始化程序块。

答案 3 :(得分:1)

import java.io.*;
import java.util.*; 

public class SortNames {

private String[] strings = new String[10];  

private int counter;

public SortNames() {

ArrayList<String> names = new ArrayList<String>();
Scanner scan = null;
File f = null;

try{
 f = new File("names.txt");
 scan = new Scanner(f);

  while(scan.hasNext()) names.add(scan.next());
}
  finally{scan.close();}

Collections.sort(names);

  for(String s:names) System.out.println(s);

     }  
} 

答案 4 :(得分:0)

很抱歉,如果这对您没有帮助,但我能够通过在包含FileWriter的方法调用中添加“throws FileNotFoundException”来解决这个问题。我知道这可能没有帮助,因为你没有使用方法,但是再一次,也许它是。