незарегистрированное исключение java.io.FileNotFoundException; должен быть пойман или объявлен брошенным - PullRequest
3 голосов
/ 21 апреля 2011

Я создаю класс - просто класс, но не main (), и я получаю сообщение об ошибке «не зарегистрированное исключение java.io.FileNotFoundException; должно быть перехвачено или объявлено как выброшенное» в этой строке:

FileOutputStream outStr = new FileOutputStream(FILE, true);   

Я не понимаю; Я вставил блок try {} catch {}, и он все еще сообщает об ошибке.

Кроме того, он также сообщает о «недопустимом начале типа» для try и catch-строк, а также говорит, что ';' ожидается для обеих линий захвата.

Я использую IDE NetBean, к вашему сведению.

Спасибо за любую помощь.

Вот полный код:

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 ]

9 голосов
/ 21 апреля 2011

Вы должны поместить операторы обработки файлов в метод:

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());
        } 
    }
}
3 голосов
/ 21 апреля 2011

Весь функциональный код должен идти в методы - я не вижу метода в вашем коде - это недопустимое начало проблемы типа. Другие ошибки компиляции должны стать понятнее, как только вы освоите основы.

public class Foo {

  public void doSomething() {
    //code here 
  }

}
1 голос
/ 18 ноября 2011
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);

     }  
} 
1 голос
/ 21 апреля 2011

Переместите этот код в какой-либо метод или хотя бы в статический блок инициализатора.

0 голосов
/ 27 апреля 2013

Извините, если это не поможет вам, но я смог решить эту проблему, добавив «throws FileNotFoundException» в мой вызов метода, который содержал FileWriter.Я знаю, что это может быть бесполезно, поскольку вы не используете методы, но, опять же, возможно, это так.

...