JAVA 프로그래밍

문제

파일에서 날씨 정보를 추출하고, 그 추출 정보를 바탕으로 날씨 뉴스를 생성하는 문제입니다 실행순서를 클릭하세요 참고로, 날씨 정보는 아래와 같이 '정보 [ 탭 ] 정보 [ 탭 ] 정보 [ 탭 ] ...'의 구조로 저장되어 있습니다. 
--------- 파일 weather1.txt의 내용 --------- 
1	15	목	대설특보	눈길	-4	-4	-1	0	4	4	1	3	2	2	4	5
6	29	금	호우특보	빗길	21	21	23	23	22	21	29	30	31	31	26	28
1	3	목	강풍주의보	안전	-8	-14	-7	-4	-2	2	2	2	4	7	8	7
--------- 파일 weather2.txt의 내용 --------- 
6	29	금	호우특보	빗길	21	21	23	23	22	21	29	30	31	31	26	28
--------- 파일 weather3.txt의 내용 --------- 
1	3	목	강풍주의보	안전	-8	-14	-7	-4	-2	2	2	2	4	7	8	7
파일이름을 입력하세요: C:\Users\user\Downloads\weather1.txt
1월 15일 목요일 오늘의 날씨입니다.
주요 지역의 아침 최저 기온은 서울 -4도, 춘천 -4도, 대전 -1도, 광주 0도, 부산 4도, 제주 4도입니다.
낮 최고기온은 서울 1도, 춘천 3도, 대전 2도, 광주 2도, 부산 4도, 제주 5도입니다.
대설특보가 발효중인 지역에서는 눈길 운전에 각별히 주의해 주시기 바랍니다.
	
6월 29일 금요일 오늘의 날씨입니다.
주요 지역의 아침 최저 기온은 서울 21도, 춘천 21도, 대전 23도, 광주 23도, 부산 22도, 제주 21도입니다.
낮 최고기온은 서울 29도, 춘천 30도, 대전 31도, 광주 31도, 부산 26도, 제주 28도입니다.
호우특보가 발효중인 지역에서는 빗길 운전에 각별히 주의해 주시기 바랍니다.
	
1월 3일 목요일 오늘의 날씨입니다.
주요 지역의 아침 최저 기온은 서울 -8도, 춘천 -14도, 대전 -7도, 광주 -4도, 부산 -2도, 제주 2도입니다.
낮 최고기온은 서울 2도, 춘천 2도, 대전 4도, 광주 7도, 부산 8도, 제주 7도입니다.
강풍주의보가 발효중인 지역에서는 안전 운전에 각별히 주의해 주시기 바랍니다. 

프로그램 코드

	import java.io.*;
	import java.util.Scanner;
		
	public class WeatherFile
	{
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 inFile = new BufferedReader( new FileReader( new File( filename ) ) );

5			for( String line; ( line = inFile.readLine() ) != null; ) {
				String[] item = line.split("\t");
				if ( item.length < 17 ) {
					System.out.print( "(오류) 날짜별 날씨 정보을 읽어올 수 없습니다." );
					break;
				}
				
				String month      = item[0];
				String day        = item[1];
				String week       = item[2];
				String weatherReport = item[3];
				String precaution = item[4];
				int lowSeoul      = Integer.parseInt( item[5] );
				int lowChuncheon  = Integer.parseInt( item[6] );
				int lowDaejeon    = Integer.parseInt( item[7] );
				int lowGwangju    = Integer.parseInt( item[8] );
				int lowBusan      = Integer.parseInt( item[9] );
				int lowJeju       = Integer.parseInt( item[10] );
				int highSeoul     = Integer.parseInt( item[11] );
				int highChuncheon = Integer.parseInt( item[12] );
				int highDaejeon   = Integer.parseInt( item[13] );
				int highGwangju   = Integer.parseInt( item[14] );
				int highBusan     = Integer.parseInt( item[15] );
6				int highJeju      = Integer.parseInt( item[16] );

				System.out.println( month + "월 " + day + "일 " + week + "요일 오늘의 날씨입니다." );
				System.out.println( "주요 지역의 아침 최저 기온은 서울 " + lowSeoul + "도, 춘천 " + lowChuncheon + "도, 대전 " + lowDaejeon + "도, 광주 " + lowGwangju + "도, 부산 " + lowBusan + "도, 제주 " + lowJeju + "도입니다." );
				System.out.println( "낮 최고기온은 서울 " + highSeoul + "도, 춘천 " + highChuncheon + "도, 대전 " + highDaejeon + "도, 광주 " + highGwangju + "도, 부산 " + highBusan + "도, 제주 " + highJeju + "도입니다." );
7				System.out.println( weatherReport + "가 발효중인 지역에서는 " + precaution + " 운전에 각별히 주의해 주시기 바랍니다.\n" );
			}

8			inFile.close();
			scan.close();
9		}
	}








 
실행 순서