JAVA 프로그래밍

문제

게임 스코어를 입력받아 게임 랭킹 파일을 업데이트하는 문제입니다 이를 해결하는 프로그램의 다음 실행상태에 대해 빈칸을 채우세요 

프로그램의 실행순서 및 실행상태

1  public static void main( String[] args ) throws IOException {

2   String filename = scan.next();
게임랭킹 파일이름을 입력하세요: ranking.txt

3   BufferedReader inRankingFile = new BufferedReader( new FileReader( new File( filename ) ) );

5   for( String line; ( line = inRankingFile.readLine() ) != null; index++ ) {

6     id[index][1] = one[1];
                                main()                      
         id[0]
           [1]       
           [2]       
           [3]       
           [4]       
               [0] [1]
         index
      filename        ranking.txt
 inRankingFile  →    내가짱 8579214
구름위 3674159
이기자 1578236

5   for( String line; ( line = inRankingFile.readLine() ) != null; index++ ) {
                                              
... 

5   for( String line; ( line = inRankingFile.readLine() ) != null; index++ ) {

7   inRankingFile.close();

8   id[index][1] = scan.next();
게임 아이디를 입력하세요: 홍길동
게임 스코어를 입력하세요: 4157967

9   BufferedWriter outRankingFile = new BufferedWriter( new FileWriter( new File( filename ) ) );

11   for ( index = 0; id[index][0].compareTo( "" ) != 0; index++ ) {

1) 내가짱 8579214

12    outRankingFile.write( id[index][0] + "\t" + id[index][1] + "\n" );
                                main()                      
         id[0]  내가짱   8579214 
           [1]  홍길동   4157967 
           [2]  구름위   3674159 
           [3]  이기자   1578236 
           [4]       
               [0] [1]
         index
      filename        ranking.txt
 inRankingFile    내가짱 8579214 
outRankingFile  →     

11   for ( index = 0; id[index][0].compareTo( "" ) != 0; index++ ) {

2) 홍길동 4157967

12    outRankingFile.write( id[index][0] + "\t" + id[index][1] + "\n" );
                                                 ranking.txt
         index  1    내가짱 8579214
outRankingFile  →    홍길동 4157967

11   for ( index = 0; id[index][0].compareTo( "" ) != 0; index++ ) {

3) 구름위 3674159

12    outRankingFile.write( id[index][0] + "\t" + id[index][1] + "\n" );
                                                 ranking.txt
         index  2    내가짱 8579214
outRankingFile  →    홍길동 4157967
구름위 3674159

11   for ( index = 0; id[index][0].compareTo( "" ) != 0; index++ ) {

4) 이기자 1578236

12    outRankingFile.write( id[index][0] + "\t" + id[index][1] + "\n" );
                                                 ranking.txt
         index  3    내가짱 8579214
outRankingFile  →    홍길동 4157967
구름위 3674159
이기자 1578236

11   for ( index = 0; id[index][0].compareTo( "" ) != 0; index++ ) {

13   outRankingFile.close();
outRankingFile
                                                            

14  }


프로그램 코드

	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		}
	}