2013-08-09 1 views
0

나는이 코드를 가지고있다.어떻게 안드로이드에 텍스트 파일에서 임의의 라인을로드?

Scanner s = new Scanner(getResources().openRawResource(R.raw.game)); 

try { 
    while (s.hasNextLine()) { 

     System.out.println(s.nextLine()); 

    } 
} finally { 
    s.close(); 
} 

이 코드에서 임의의 줄을로드하려면 어떻게해야합니까?

감사합니다.

+0

파일이 작은 경우는, 문자열 배열로 읽는 것이 방법입니다 여기

는 ArrayList의에 넣어 몇 가지 코드입니다 가기. 규모가 크면 다른 접근 방식이 필요합니다. 파일이 얼마나 큽니까? – Gene

답변

1

당신은 이러한 ArrayList 같은 다른 데이터 구조로 라인을로드 할 수 사용할 수 있습니다.

Scanner s = new Scanner(getResources().openRawResource(R.raw.game)); 
ArrayList<String> list = new ArrayList<String>(); 

try { 
    while (s.hasNextLine()) { 
     list.add(s.nextLine());  
    } 
} finally { 
    s.close(); 
} 

임의의 라인 반환이 코드 :

public static String randomLine(ArrayList list) { 
    return list.get(new Random().nextInt(list.size())); 
} 
+0

감사합니다! @ user2453771 – iamnards

1

먼저 파일의 모든 파일을 String 배열에로드 한 다음 배열 중 하나를 무작위로 선택하십시오 (배열 String). 이

int randomLine = (int)(Math.random()*lines.length); 

당신이 당신의 임의의 라인을 가지고 :

0

는 문자열 배열 lines에 수집했던 supose을 할 수 있습니다.

편집 : 아 글쎄, 당신은 임의의 인덱스 번호를 생성하는 Random를 사용 후 바로 String[]

관련 문제