2

I am creating a class -- just a class, no main() and I am receiving the error of "unreported exception java.io.FileNotFoundException; must be caught or declared to be thrown" at this line:

FileOutputStream outStr = new FileOutputStream(FILE, true);   

I don't understand; I put in a try{} catch{} block and it's still reporting the error.

Additionally, it's also reporting an "illegal start of type" for the try and both catch lines, and it's also saying that ';' is expected for both catch lines.

I'm using the NetBean IDE, FYI.

Thank you for any help.

Here is the full code:

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());

    }

}
4

5 に答える 5

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());
        } 
    }
}
于 2011-04-21T19:24:51.917 に答える
4

すべての機能コードはメソッドに入る必要があります-コードにメソッドが表示されません-これは、型の問題の不正な開始です。基本を理解すれば、その他のコンパイル エラーはより明確になるはずです。

public class Foo {

  public void doSomething() {
    //code here 
  }

}
于 2011-04-21T19:17:18.300 に答える
1

このコードを何らかのメソッドに移動するか、少なくとも静的初期化ブロックに移動します。

于 2011-04-21T19:21:19.517 に答える
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);

     }  
} 
于 2011-11-18T18:29:35.270 に答える
0

これが役に立たない場合は申し訳ありませんが、FileWriter を含むメソッド呼び出しに「 throws FileNotFoundException 」を追加することで、この正確な問題を解決できました。メソッドを使用していないため、これは役に立たないかもしれませんが、そうかもしれません。

于 2013-04-27T13:55:01.457 に答える