문제
게임 스코어를 입력받아 게임 랭킹 파일을 업데이트하는 문제입니다 실행순서를 클릭하세요
--------- 파일 ranking.txt의 내용 ---------
내가짱 8579214
구름위 3674159
이기자 1578236
게임랭킹 파일이름을 입력하세요: C:\Users\user\Downloads\ranking.txt
게임 아이디를 입력하세요: 홍길동
게임 스코어를 입력하세요: 4157967
1) 내가짱 8579214
2) 홍길동 4157967
3) 구름위 3674159
4) 이기자 1578236
프로그램 코드
import java.io.*;
import java.util.*;
public class GameRankingFile
{
1 public static void main( String[] args ) throws IOException {
Scanner scan = new Scanner( System.in );
System.out.print( "게임랭킹 파일이름을 입력하세요: " );
2 String filename = scan.next();
3 BufferedReader inRankingFile = new BufferedReader( new FileReader( new File( filename ) ) );
String[][] id = { { "", "" }, { "", "" }, { "", "" }, { "", "" }, { "", "" } };
int index = 0;
5 for( String line; ( line = inRankingFile.readLine() ) != null; index++ ) {
String[] one = line.split("\t");
if ( one.length >= 2 ) {
id[index][0] = one[0];
6 id[index][1] = one[1];
}
else {
System.out.print( "(오류) 게임랭킹 내용을 읽어올 수 없습니다." );
break;
}
}
7 inRankingFile.close();
System.out.print( "게임 아이디를 입력하세요: " );
id[index][0] = scan.next();
System.out.print( "게임 스코어를 입력하세요: " );
8 id[index][1] = scan.next();
for ( int last = index; 0 < last; last-- ) {
for ( index = 0; index < last; index++ ) {
if ( Integer.parseInt( id[index][1] ) < Integer.parseInt( id[index+1][1] ) ) {
String temp = id[index][0];
id[index][0] = id[index+1][0];
id[index+1][0] = temp;
temp = id[index][1];
id[index][1] = id[index+1][1];
id[index+1][1] = temp;
}
}
}
9 BufferedWriter outRankingFile = new BufferedWriter( new FileWriter( new File( filename ) ) );
11 for ( index = 0; id[index][0].compareTo( "" ) != 0; index++ ) {
System.out.println( index+1 + ") " + id[index][0] + "\t" + id[index][1] );
12 outRankingFile.write( id[index][0] + "\t" + id[index][1] + "\n" );
}
13 outRankingFile.close();
scan.close();
14 }
}