2011-04-21 3 views
3

클래스를 생성하려고합니다. main()이 아니며 "보고되지 않은 예외 java.io.FileNotFoundException; 던져 져야 함 또는 throw되어야한다고 선언되었습니다" 다음 줄에 :보고되지 않은 예외 java.io.FileNotFoundException; 잡히거나 throw되어야한다고 선언해야합니다.

FileOutputStream outStr = new FileOutputStream(FILE, true); 

나는 이해하지 못한다. try {} catch {} 블록을 넣었지만 여전히 오류를보고하고 있습니다.

또한 try 및 both 캐치 라인에 대해 "유형 불법 시작"을보고하고 있으며 ';' 두 캐치 라인에 모두 필요합니다.

참고로 NetBean IDE, FYI를 사용하고 있습니다.

도움 주셔서 감사합니다.

여기에 전체 코드입니다 :

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

    } 

} 
+2

이 행의 의미는 다음과 같습니다.'Logger.getLogger ("outLog"), Level.ERROR)));'? 먼저 수정하십시오. – MByD

+1

가장 분명한 장소의 코드에'// Begin // End' 주석을 너무 많이 넣을 필요는 없습니다. 그들은 유익한 것보다 더 많은 소음을 내고 있습니다. – kunal

+0

수정 됨. 나는이 질문/답변 게시의 목적을 위해 해당 줄을 삭제했다고 생각했지만 표면 상 그것을 놓쳤습니다. // Begin 및 // End 주석을 제거했습니다. 고맙습니다. – user717236

답변

8

당신은 방법 내부 파일 처리 문을 배치해야 "FileWriter가 포함 된 메서드 호출에 전달합니다. 나는 당신이 방법을 사용하고 있지 않기 때문에 이것이 도움이되지 않을지도 모른다는 것을 알고 있습니다, 그러나 다시, 어쩌면 그것 일 수도 있습니다.

+0

메인 내에서 같은 일을 할 때 이것을 얻는다 – Ungeheuer

+0

@Ungeheuer FileOutputStream 구조를 main의 try/catch 블록에 랩핑해야한다. 다른 방법으로는 FileNotFoundException을 throw하는 메서드를 선언 할 수 있습니다. – climmunk

+0

나는 그것을 try/catch 해왔다. 어쨌든 stdin을 사용할 필요가 없어졌습니다. – Ungeheuer

3

모든 기능 코드는 방법에 갈 필요 - 난 당신의 코드에서하는 방법을 볼 수 없습니다 - 그 유형 문제의 불법 시작합니다. 다른 컴파일 오류는 기본 사항을 이해하게되면 더 명확 해집니다.

+1

모든 코드가 들어갑니다 -> public static void main (String [] args) { – Ishmael

+0

그래, 그 문제가 해결 됐어, 나는 방법이 없었어. 멀리 공공 정적 무효 메인, 나는 라이브러리 클래스를 만들려고했다. 라이브러리 클래스가 main 메소드를 필요로하지 않습니까? – user717236

+2

Java에서 메서드는 작업 단위입니다. 클래스 또는 클래스 수준 변수의 정적 이니셜 라이저 블록을 제외하고 모든 코드는 메서드에 있습니다. 당신은 서명 Ishmael provice와 함께, 이것이 Java가 직접 실행하는 클래스라면, 즉 java Foo는 Foo가 main을 가져야 함을 의미합니다. 도우미 메서드 나 모델링 엔티티가있는 라이브러리 클래스에는 main이 필요하지 않습니다. – karakuricoder

1

이 코드를 일부 방법 또는 적어도 정적 초기화 프로그램 블록으로 옮깁니다.

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

    } 
} 
0

이 당신에게 도움이되지 않은 경우 죄송하지만 추가하여 정확한 문제를 해결할 수 있었다 "는 FileNotFoundException이 예외 :