아래와 같이 서울과 경기도 일부의 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) {}
}
'Java' 카테고리의 다른 글
[Java] 바이트 단위 스트림과 문자 단위 스트림 실습 (0) | 2022.10.15 |
---|---|
[Java] 입출력 스트림을 사용해서 구구단을 메모장에 저장 시 오류 발생 / 한글 깨짐 현상 (0) | 2022.10.14 |
[Java] 스트림(Stream) / 기반 스트림과 보조 스트림 / 바이트 단위 스트림과 문자 단위 스트림 / 입력 스트림과 출력 스트림 (0) | 2022.10.13 |
[Java] File 클래스(2) (0) | 2022.10.13 |
[Java] File 클래스(1) / File(String pathname) / 경로 표기법 (0) | 2022.10.13 |
댓글