// 파일안에 문장을 읽어서 특정단어 서치
import java.io.*;
import java.util.*;
public class FindWordWriteFile {
	public static void main( String[] args ) {
		try {
			// 파일에서 데이타를 읽이 위한 FileReader 객체 생성
			FileReader fr = new FileReader( "input.txt" );
			// 버퍼에 임시 저장한 후에 데이타를 읽어 오기 위한,
			// BuffreredReader 객체 생성
			BufferedReader br = new BufferedReader( fr );  //입력버퍼 추가!!!
			// 원하는 파일에 데이타를 전송하기 위한,
			// FileWriter 객체 생성
			FileWriter fw = new FileWriter( "output.txt" ); //기존 파일 삭제하고 생성 + 결국 출력되는대상
			// 임시 저장 장소인 버퍼에 데이타를 모았다가,
			// 출력 시켜 주기 위한 BufferedWriter 객체 생성
			BufferedWriter bw = new BufferedWriter( fw );  //출력버퍼 생성!!!
			// 라인수를 출력 하기 위한 변수
			int count = 1;
			// 파일에서 데이타를 한 줄 읽어 들임
			String line = br.readLine();
			// 파일의 데이타를 모두 읽을 때까지
			while( line != null ) {
				// 공백을 기준으로 문자열을 구분
				StringTokenizer st = new StringTokenizer( line, " " );
					//  StringTokenizer => (" ") 단위로 끊는다.
				while( st.hasMoreTokens() ) { 
					// (" ")가 생길때마다 true값 리턴  <=  hasMoreTokens()  
// + false 이면 아래 내용실행
// + false 이면 아래 내용실행
					// 끊어서 읽은 내용은 별도의 string에 저장
					// "String"단어와 일치하면
					if( st.nextToken().equals( "String" )) {
						// 화면에 결과 값을 출력
						String result = count + " Line : " + line.trim();
						System.out.println( result );
						// 파일에 결과를 저장
						bw.write( result );
						// 현재 버퍼에 저장된 내용을 출력 스트림을
						// 통해 전송 시킨다.
						bw.flush();  //출력버퍼내용을 모두 옮기고 삭제
						// 새로운 라인으로 이동
						bw.newLine();
						break;
					}
				}
				// 다음 라인을 읽어 들임
				line = br.readLine();
				// 라인수를 증가
				count++;
			}
		} catch ( Exception e ) {
			System.out.println( e.toString() );
		}
	}
}
'새로워지기 > 서른의 생활코딩' 카테고리의 다른 글
| ex) java_ JDBC (0) | 2012.03.06 | 
|---|---|
| java _2012.03.06 (0) | 2012.03.06 | 
| ex15) java.io.* _DataOutputStream + DataInputStream (0) | 2012.03.06 | 
| ex14) java.io.* _Serializable + ObjectOutputStream (0) | 2012.03.06 | 
| ex13) java.io.* _BufferedOutputStream (0) | 2012.03.06 | 
댓글