2014-04-08 3 views
1

나는 많은 것을 시도해 본 결과이 문제에 너무 빠지다.텍스트 파일에서 읽기 및 개인 방법으로 arraylist로 돌아 가기

나는 텍스트 파일을 읽고 개인적인 방법으로 arraylist 안에 던져 넣어야한다.

그리고 arraylist를 출력 할 새로운 방법을 만드십시오.

이것은 내가 지금까지 시도한 것입니다.

나는이 오류가 발생합니다 :

fileHandling.java:11: readArray(java.util.ArrayList<java.lang.String>) in fileHandling cannot be applied to() 
    readArray();  
^
1 error 

내 코드 :

import java.util.Scanner; 
import java.io.*; 
import java.util.*; 
public class fileHandling { 
    private ArrayList<String> Person; 

    public static void main(String[] args)throws Exception { 
     readArray();  
    } 

    private ArrayList readFile() throws Exception { 
     File file = new File("person.rtf"); 
     Scanner scanner = new Scanner(file); 

     while(scanner.hasNextLine()) { 
      String str = scanner.nextLine(); 
      Person.add(str);      
     } 
     return Person; 
    } 

    public void readArray(ArrayList<String> Person) { 

     for(int i =0; i < Person.size(); i++) { 
      System.out.println(Person.get(i)); 
     } 
    } 
} 

나는 오류가 나는 내 방법을 호출 할 때, 무엇을 괄호 안에 것입니다 생각하십니까?

+0

ArrayList를 초기화해야합니다. 또한 다량의 이름에 camelCase를 사용하십시오. – HectorLector

+0

또한 정적 메소드 인 것처럼'readArray'를 호출합니다.아, 그리고 당신의'readFile' 메쏘드가 원시 타입을 반환하도록 선언되었습니다 ... –

답변

0

내가보기에 몇 가지 문제가 있습니다.

1) 클래스의 인스턴스를 인스턴스화하지 않습니다.

2) 파일을 읽지 않습니다.

3) List으로 readArray을 호출하지 않았습니다.

4) List 인스턴스가 없습니다.

5) ArrayList<String> readFile()

난 당신이 뭔가를 할 생각

private ArrayList<String> Person = new ArrayList<String>(); 
public static void main(String[] args) throws Exception 
{ 
    // readArray(); 
    fileHandling fh = new fileHandling(); 
    fh.readArray(fh.readFile()); // <-- something like this 
} 
0

당신은

변수는 대문자와 배열되어서는 안된다 ... 당신의 파일을 읽을 수있는 BufferedInputStream을 사용해야합니다 사람이 아니라 사람이라고해야합니다.

초기화하는 것을 잊지 마세요. ArrayList persons = new ArrayList();

기본 메소드는 먼저 read 메소드를 호출해야합니다. readArray()가 고정되지 않기 때문에 메인에서()

// returns a List<String> with all lines in the file 
Files.readAllLines(thePath, StandardCharsets.UTF_8); 
0

,만큼 쉽다. 현재 컨텍스트에서 main에 fileHandling의 인스턴스를 만들고 그것에 대한 readArray()를 호출해야합니다.

둘째, readArray() 메서드는 ArrayList Person을 매개 변수로 사용하여 선언되지만 주 메서드에서 매개 변수없이 호출하고 있습니다.

셋째, 컴파일에 도움이되지 않지만 Java의 경험 법칙은 클래스의 첫 문자를 대문자로 (FileHandling이어야 함) 선언의 첫 번째 문자를 대문자로 사용하지 않는 것입니다 (ArrayList Person은 정말 ArrayList 사용자).

0

먼저 당신이 readArray에 액세스 할 수 없습니다 : 당신이 자바 7 사용하는 경우

+0

조금 더 구체적으로 해주시겠습니까? – tinaw25

관련 문제