본문 바로가기
Java

[Java] 입출력 클래스를 통한 주소 데이터 출력 / BufferedReader를 이용한 주소 출력 / 주소를 입력받으면 연관된 주소를 출력해주는 프로그램

by bkuk 2022. 10. 13.

아래와 같이 서울과 경기도 일부의 18,308개 데이터가 있습니다.

 

입출력 클래스를 이용해서 원하는 데이터를 출력한다면 어떨까요?


 

우선, 1번부터 18,308번까지의 데이터BufferedReader를 이용해서 consol에 출력해보겠습니다.

BufferedReader br =null;

try {
    br = new BufferedReader( new FileReader("./zipcode_seoul_utf8_type2.csv"));

    String str = null;
    while( (str = br.readLine()) != null ) {
        System.out.println( str );

    }
} catch (FileNotFoundException e) {
    System.out.println( e.getMessage());
} catch (IOException e) {
    System.out.println( e.getMessage());
} finally {
    if( br != null ) try { br.close(); } catch(IOException e) {}
}

 

주소지가 '서울'인 데이터만 보고싶다면?

 

우선, 읽어 들인 데이터를 구분자를 제외하고 배열로 담습니다.

이 중 "서울"이라는 데이터를 가지고 있으면 그 데이터를 출력합니다.

BufferedReader br =null;

try {
    br = new BufferedReader( new FileReader("./zipcode_seoul_utf8_type2.csv"));

    String str = null;

    while( (str = br.readLine()) != null ) {
        String[] addresses = str.split( "," );	// 구분자 없이 배열로 저장

        if( addresses[1].equals("서울") ) {	// 배열로 저장한 것 중에서 "서울"이라면 
            System.out.println( str );		// 읽고 난 후 해당 데이터를 console에 출력한다.
        }

    }
} catch (FileNotFoundException e) {
    System.out.println( e.getMessage());
} catch (IOException e) {
    System.out.println( e.getMessage());
} finally {
    if( br != null ) try { br.close(); } catch(IOException e) {}
}

 

이를 메모장에 저장해보겠습니다

그렇게 하기 위해서는 출력 스트림도 생성해줘야 합니다.

따라서, "SeoulDate.txt" 라는 텍스트 파일을 저장할 수 있는 BufferWriter 스트림을 생성했습니다. 

BufferedReader br =null;
BufferedWriter bw = null;

try {
    br = new BufferedReader( new FileReader("./zipcode_seoul_utf8_type2.csv"));
    bw = new BufferedWriter( new FileWriter("./SeoulData.txt"));

    String str = null;
    while( (str = br.readLine()) != null ) {

        String[] addresses = str.split( "," );

        if( addresses[1].equals("서울") ) { 
            bw.write( str + "\n");
        }
    }

} catch (FileNotFoundException e) {
    System.out.println( e.getMessage());
} catch (IOException e) {
    System.out.println( e.getMessage());
} finally {
    if( br != null ) try { br.close(); } catch(IOException e) {}
    if( bw != null ) try { bw.close(); } catch(IOException e) {}
}


 

주소 키워드를 입력받으면 출력해주는 프로그램

Scanner scan = new Scanner(System.in);

String juso = scan.nextLine();

juso = juso.replace(" ", "");

BufferedReader br = null;

try {
    br = new BufferedReader( new FileReader("./zipcode_seoul_utf8_type2.csv"));

    System.out.println( juso + "를 입력받았습니다." + "\n");

    String str = null;

    int Numbering = 0;

    while( (str = br.readLine()) != null ) {
        String[] addresses = str.split( "," );

        if( addresses[3].startsWith(juso)) {
            Numbering++;
            System.out.println( "["+Numbering+"]"+ "\t" + str + "\n");
        }
    }
} catch (FileNotFoundException e) {
    System.out.println( e.getMessage());
} catch (IOException e) {
    System.out.println( e.getMessage());
} finally {
    if( br != null ) try { br.close(); } catch(IOException e) {}
}

댓글