2012-09-02 5 views
0

나는 내가이 임의의 이름을 선택하고 인쇄 할 수있는 방법이 형식

이름 1
NAME2
NAME3

에, 나는 각 줄의 파일 저장 이름을 만들어 관리해야 초보자 자바 프로그래머입니다 ? 감사합니다 :)텍스트 파일에서 임의의 이름을 선택하려면 어떻게합니까?

+0

어디서부터 시작해야할지 모르겠다. Google에서 검색했지만 여기에서 찾을 수는 없다. – user1641312

+1

기본 Java 자습서를 사용해 보았습니다. 적어도 파일에서 행을 읽는 데 충분합니까? 자바 프로그램을 시작하기에 충분한 지식이 없다면 누군가를 위해 전체 프로그램을 작성하는 것이 건설적이지 않을 것입니다. (이 숙제입니까?) –

+0

아니 숙제가 아니라, 게임 메신저가 주위에 어지럽히고 메신저가 파일에 이름을 추가하는 복권 시스템을 만들고, 임의의 이름을 선택하는 다른 방법이 필요합니다. 자바에 대한 경험은 있지만 파일에서 읽고 쓰는 것에 대해서는 그리 많지 않습니다. – user1641312

답변

1

당신이 문자열로 모두 읽어 문자열 배열로 분할하고 pseodo 난수를 생성하는 "수학"에서 "임의"를 사용할 수 있습니다 중 하나 각 간격을 선택하거나 반은 "RandomAccessFile의 사용 "위의 sugestion으로 최대 임의가 파일 길이가되며 사용자가 원하는 이름을 선택하기 위해 다음 공간을 찾고 마지막으로 위치를 선택한 경우도 처리해야합니다.

1
String fileName = "...the path and name of your file...."; 
ArrayList<String> allNames = new ArrayList<String>(); 
Random r = new Random(); 

BufferedReader in = new BufferedReader(new FileReader(fileName)); 
while (in.ready()) { 
    allNames.add(in.readLine()); 
} 
in.close(); 

String randomName = allNames.get(r.nextInt(allNames.size())); 
+0

고마워요.하지만 빈 이름을 그리지 않게하려면 어떻게해야합니까? – user1641312

+1

몇 가지 방법이 있습니다. 먼저 파일에 공백이 포함되어 있지 않은지 확인하거나 in.readline()의 문자열을 임시 문자열에 추가하고 비어 있는지 확인하십시오. 비어 있지 않은 경우 배열 목록에 추가하십시오. 행이 비어 있으면 무시하십시오. 다른 모든 것은 잘 작동해야합니다. –

관련 문제