문제
파일에서 날씨 정보를 추출하고, 그 추출 정보를 바탕으로 날씨 뉴스를 생성하는 문제입니다 이를 해결하는 프로그램의 다음 실행상태에 대해 빈칸을 채우세요
프로그램의 실행순서 및 실행상태
1 public static void main( String[] args ) throws IOException {
2 String filename = scan.next();
파일이름을 입력하세요: weather1.txt
3 BufferedReader inFile = new BufferedReader( new FileReader( new File( filename ) ) );
5 for( String line; ( line = inFile.readLine() ) != null; ) {
6 int highJeju = Integer.parseInt( item[16] );
7 System.out.println( weatherReport + "가 발효중인 지역에서는 " + precaution + " 운전에 각별히 주의해 주시기 바랍니다.\n" );
1월 15일 목요일 오늘의 날씨입니다.
주요 지역의 아침 최저 기온은 서울 -4도, 춘천 -4도, 대전 -1도, 광주 0도, 부산 4도, 제주 4도입니다.
낮 최고기온은 서울 1도, 춘천 3도, 대전 2도, 광주 2도, 부산 4도, 제주 5도입니다.
대설특보가 발효중인 지역에서는 눈길 운전에 각별히 주의해 주시기 바랍니다.
5 for( String line; ( line = inFile.readLine() ) != null; ) {
6 int highJeju = Integer.parseInt( item[16] );
7 System.out.println( weatherReport + "가 발효중인 지역에서는 " + precaution + " 운전에 각별히 주의해 주시기 바랍니다.\n" );
6월 29일 금요일 오늘의 날씨입니다.
주요 지역의 아침 최저 기온은 서울 21도, 춘천 21도, 대전 23도, 광주 23도, 부산 22도, 제주 21도입니다.
낮 최고기온은 서울 29도, 춘천 30도, 대전 31도, 광주 31도, 부산 26도, 제주 28도입니다.
호우특보가 발효중인 지역에서는 빗길 운전에 각별히 주의해 주시기 바랍니다.
5 for( String line; ( line = inFile.readLine() ) != null; ) {
6 int highJeju = Integer.parseInt( item[16] );
| | | | | | main() | |
| month | 1 | day | 3 | week | 목 |
| weatherReport | 강풍주의보 | precaution | 안전 | | |
| lowSeoul | -8 | lowChuncheon | -14 | lowDaejeon | -7 |
| lowGwangju | -4 | lowBusan | -2 | lowJeju | 2 |
| highSeoul | 2 | highChuncheon | 2 | highDaejeon | 4 |
| highGwangju | 7 | highBusan | 8 | highJeju | 7 |
| filename | weather1.txt | inFile | ↓ | | |
| 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 |
7 System.out.println( weatherReport + "가 발효중인 지역에서는 " + precaution + " 운전에 각별히 주의해 주시기 바랍니다.\n" );
1월 3일 목요일 오늘의 날씨입니다.
주요 지역의 아침 최저 기온은 서울 -8도, 춘천 -14도, 대전 -7도, 광주 -4도, 부산 -2도, 제주 2도입니다.
낮 최고기온은 서울 2도, 춘천 2도, 대전 4도, 광주 7도, 부산 8도, 제주 7도입니다.
강풍주의보가 발효중인 지역에서는 안전 운전에 각별히 주의해 주시기 바랍니다.
5 for( String line; ( line = inFile.readLine() ) != null; ) {
8 inFile.close();
9 }
프로그램 코드
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 }
}