명품 JAVA 프로그래밍

명품 JAVA 프로그래밍 8장 실습문제 12

anycoding 2021. 12. 13. 02:31
반응형

문제

텍스트 파일에 있는 단어를 검색하는 프로그램을 작성해보자. 실행 예시는 프로젝트 폴더 밑에 자신이 작성한 자바 파일( 예 : test.java )을 복사하여 두고 읽은 경우이다.

 

출력 예시

전체 경로명이 아닌 파일 이름만 입력하는 경우, 파일은 프로젝트 폴더에 있어야 합니다.
대상 파일명 입력>> test.java
검색할 단어나 문장>> void
4: public static void main(String[] args) {
검색할 단어나 문장>> int
9: System.out.println("전체 경로명이 아닌 파일 이름만 입력하는 경우, 파일은 프로젝트 폴더에 있어야 합니다."); 11: System.out.print("첫 번째 파일 이름을 입력하세요>>");
14: System.out.print("두 번째 파일 이름을 입력하세요>>");
17: System.out.print(src + "와 " + dst + "를 비교합니다.");
22: System.out.println("파일이 같습니다.");
24: System.out.println("파일이 다릅니다.");
29: System.out.println("입출력 오류가 발생했습니다.);
39: int srcCount=0, destCount;
49: for (int i=0; i<srcCount;i++) {
검색할 단어나 문장>> for
49: for (int i=0; i<srcCount;i++) {
검색할 단어나 문장>> 그만
프로그램을 종료합니다.

 

소스 코드

import java.io.*;
import java.util.*;
public class Main12 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		FileReader fin = null;
		BufferedReader bf = null;
		System.out.println("전체 경로명이 아닌 파일 이르만 입력하는 경우, 파일은 프로젝트 폴더에 있어야 합니다.");
		System.out.print("대상 파일명 입력>> ");
		Scanner s = new Scanner(System.in);
		String file = s.nextLine();
		Vector<String> v = new Vector<String>();
		try {
			fin = new FileReader(file);
			bf = new BufferedReader(fin);
			String Line = "";
			while((Line = bf.readLine()) != null) {
				v.add(Line);
			}
			fin.close();
			bf.close();
		}catch(IOException e) {
			System.out.println("입출력 오류");
			return;
		}
		while(true) {
			System.out.print("검색할 단어나 문장>> ");
			String word = s.nextLine();
			if(word.equals("그만")) {
				System.out.println("프로그램을 종료합니다.");
				break;
			}
			for(int i =0;i<v.size();i++)
			{
				if(v.get(i).contains(word)) {
					System.out.printf("%3d:",i);
					System.out.println(v.get(i));
				}			
			}
		}
        s.close();
	}

}

 

 

반응형