2016-05-31 2 views
0

배열을 이름으로 채 웁니다. 캐릭터의 성별에 따라 배열을 채워야합니다.문자의 성별에 따라 텍스트 파일에서 배열 채우기

public void fillNameArray() throws IOException { 
    Character character = new Character(); //Declare and initialise character object 

    if(character.getGender() == "F"){ 
     List<String> lines = new ArrayList<String>(); 
     BufferedReader reader = null; 
     try { 
      reader = new BufferedReader(new FileReader("femaleNames.txt")); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       lines.add(line); 
      } 
     } finally { 
      reader.close(); 
     } 
     String[] array = (String[]) lines.toArray(); 
    } 
    else{ 
     List<String> lines = new ArrayList<String>(); 
     BufferedReader reader = null; 
     try { 
      reader = new BufferedReader(new FileReader("maleNames.txt")); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       lines.add(line); 
      } 
     } finally { 
      reader.close(); 
     } 
     String[] array = (String[]) lines.toArray(); 
    } 

} 
+3

질문은 무엇입니까? –

+0

여기서 물어 보려는 질문은 무엇입니까 ?? –

+1

StackOverflow의 목적은 자신이 원하는 코드 인 경우 코드를 작성하는 것이 아닙니다. 다른 한편으로, 어떤 종류의 예외가 발생하거나 기대했던 것과 다른 결과를 얻는 경우이 정보를 원래 질문에 포함시켜 문제를 즉시 해결할 수 있습니다. – Monkeygrinder

답변

0

문제는 다음 줄에 있습니다 대신

String[] array = (String[]) lines.toArray(); 

쓰기 :

String[] array = lines.toArray(new String[lines.size()]); 

예로서 post 참조하십시오.

독자적인 방법으로 읽기 코드를 옮길 수도 있습니까? 코드 중복이 적습니다.

public List<String> readNames(String file) { 
    List<String> lines = new ArrayList<String>(); 
    BufferedReader reader = null; 
    try { 
     reader = new BufferedReader(new FileReader(file)); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      lines.add(line); 
     } 
    } finally { 
     reader.close(); 
    } 
    return lines; 
} 
+3

이것은 대답이 아닌 주석이어야합니다. – Monkeygrinder

+0

평판이 없어서 의견을 말하지 못한다 ... sry –

+0

지금처럼 보입니다.) – Monkeygrinder

관련 문제