2012-03-26 2 views
1

텍스트 파일에서 한 줄을 읽는 프로그램을 만들었습니다. 이제는 프로그램을 실행할 때마다 임의의 줄을 읽도록해야합니다. 현재 코드의 일부입니다 :자바 파일에서 임의의 줄을 읽는 방법

if(Score<=5){ 
word = scan1 .nextLine(); 
System.out.println(word); 
} 

임의의 줄을 선택하는 간단한 방법이 있습니까?

+1

여기에 "임의 선"을 어떻게 정의 하시겠습니까? –

+2

여기를보십시오 : http://stackoverflow.com/questions/2218005/how-to-get-a-random-line-of-a-text-file-in-java – giorashc

답변

-1

Random을 통해 난수를 생성합니다. 이 번호로 파일에서 행을 읽을 수 있습니다. 이미 읽은 행과 같은 유효성 검증을해야합니다.

0

1. 먼저 파일의 총 행 수를 얻으십시오. 그런 다음 2. 해당 합계 내에서 임의의 숫자를 얻습니다. 그 다음 3. 임의의 숫자로 표시된 지점으로 파일을 건너 뜁니다. 그런 다음 4. 파일의 행을 읽으십시오.

코드를 원한다면 시작할 수 있도록 코드를 제공 할 수 있지만 구현이 매우 간단해야합니다.

0

같이) (당신이
을 숫자를 생성하는 임의 사용할 수 있지만 그 위치와 내의 readLine에 (RANDOM)를 "N \"새 라인 문자
것이 지수에 대한 새로운 라인 검색을 읽은 후 추구했다 그것을 통해서.

+0

무작위 정보 만 사용하면 중간 선. –

2
public String getRandomLineFromTheFile(File file) 
{ 
    final RandomAccessFile f = new RandomAccessFile(file, "r"); 
    final long randomLocation = (long) (Math.random() * f.length()); 
    f.seek(randomLocation); 
    f.readLine(); 
    return f.readLine(); 
} 
  1. 이 기능은 짧은 라인에 비해 더 라인으로 바이어스된다.
  2. 이 기능은 첫 번째 행에 대해 과도하게 편향되어 있습니다. (이것에 대해 생각해보십시오.)
+0

더 나은 정의로 개선하는 방법은 무엇입니까? 좋은 생각있어? – Jaskey

관련 문제