2014-07-26 11 views
0
public fillVal(File s) throws FileNotFoundException{ 

    Scanner kb = new Scanner(s); 

    while(kb.hasNextDouble()){ 
     //etc... 

    } 

내 파일 이름이 "file1.txt"라고 말하십시오. 그 텍스트 ("file1.txt") int BlueJ의 "객체 탭 만들기"를 입력하면 호환되지 않는 유형이라는 것을 알게됩니다. 나는 그 파일에 txt 파일을 가지고있다. 이것은 파일을 가져 와서 값을 가져 오는 유효한 방법이 아닙니까? 이것이 잘못된지 알려주세요. 감사합니다파일을 매개 변수로 가져 오기

답변

1

매개 변수로 개체를 가져올 때 해당 개체의 인스턴스를 전달해야합니다.

파일 이름을 전달하기 만하면 서명이 잘못됩니다. 대신 String 수락하도록 변경하십시오.

public void fillVal(String fileName) { 
    try { 
     Scanner kb = new Scanner(new File(fileName)); 
     while(kb.hasNextDouble()) { 
      // code 
     } 
    } catch(FileNotFoundException e) { 
     System.out.println("Invalid filename!"); 
     e.printStackTrace(); 
    } 
} 

아, 반환 유형을 잊지 마세요. 결과와 관련하여 아무 것도하지 않는 것처럼 이 보이지 않으므로 void을 반환하도록 선언 할 수 있습니다. 다음과 같은 방법을 감안할 때

+0

좋아 보인다. 실제로 매개 변수로 파일을 전달하는 프로세스가 무엇인지 궁금합니다. .txt는 파일로 간주되지 않습니까? –

+0

음 ... 다시 한번, 당신은'File' 객체의 인스턴스를 생성하고 그것을 전달해야 할 것입니다. '문자열 '도 역시 객체이지만 다른 객체보다 쉽게 ​​접근 할 수 있습니다. 우리가하는 일은 실제로 똑같습니다. 제가 제공 한 스 니펫에서 다른 객체를 사용하고 있습니다. 패스 나 파일 이름을 전달하는 것은 객체를 생성하는 데 완벽하게 허용됩니다. 객체를 인스턴스화하는 부담을 없애기 때문에 가능한 한 가장 간단한 장소에 배치합니다. – Makoto

0

파일 개체가 필요한 것처럼 보입니까?

new java.io.File("file1.txt") 
+0

흠. 아직 그 방법으로 그걸로 작동하지 않았다 –

0

:

public void fillVal(File s) throws FileNotFoundException { 

    Scanner kb = new Scanner(s); 

    while (kb.hasNextDouble()){ 
     System.out.println("The next double is: " + kb.nextDouble()); 
    } 
} 

아래 수행으로 당신은 fillVal (파일) 메소드를 포함하는 클래스의 인스턴스를 생성하고 그것을 호출하여 몇 가지 주요 방법에서 호출 것 :

public static void main(String[] args) 
{ 
    . . . 

    try { 
     [name of instance].fillVal(new File("README.txt")); 
    } catch (FileNotFoundException e) { 
     System.out.println(e.getMessage()); 
    } 
} 

이 파일은 README.txt 파일이 BlueJ 프로젝트의 루트 디렉토리에 있다고 가정합니다. 클래스 파일도 배치됩니다.

파일 공공 파일 (문자열 경로 이름은)

는 추상 패스로 지정된 패스 명 문자열을 변환 해, 새로운 File의 인스턴스를 생성합니다. 지정된 캐릭터 라인이 공 문자열의 경우, 결과는 하늘의 추상 패스 명입니다.

매개 변수 : 경로 -

예외 경로 이름 문자열 : 경우 NullPointerException - 경로 이름 인수가 null의 경우

관련 문제