Print Writer

import java.io.*;
//- 데이터소스: 파일
//- 데이터목적지: 파일, 도스콘솔
//- Node Stream: FileReader/FileWriter/ System.out
//- Filter Stream: BufferedReader/BufferedWriter/PrintWriter
import java.io.*;
class  FileCopyAndConsoleOut
{
	public static void main(String[] args) throws IOException
	{
		String sourceFile=args[0];//명령줄인수 하나: 읽을 파일명
		String targetFile="target.txt";
		//파일과 노드 연결--
		FileReader fr=new FileReader(sourceFile);
		//파일을 읽는 스트림: 두바이트 단위로...
		FileWriter fw=new FileWriter(targetFile);
		//파일에 쓰는 스트림: 두바이트 단위로...

		//필터링-BufferedReader/BufferedWriter와 연결
		//버퍼에 모아서 읽고 버퍼에 모아서 쓰기 작업
		//기본버퍼: 512byte
		BufferedReader br=new BufferedReader(fr);
		BufferedWriter bw=new BufferedWriter(fw);

		/*PrintWriter pw=new PrintWriter(
						new OutputStreamWriter(System.out));*/
		PrintWriter pw=new PrintWriter(System.out, true);
		//도스 콘솔에 읽은 파일내용을 출력해보자.
		//생성자에 true값을 넣어주면 auto flushing이 지원된다.
		//줄바꿈을 지원하는 메소드가 있다.--> println()

		String line="";
		//파일에 줄번호 (1: xxx )를 붙여서 출력하자.
		//콘솔에는 줄번호를 붙이고...모두 대문자로 바뀌어서 출력
		int num=0;
		while((line=br.readLine())!=null){
			num++;
			///////////////////
			pw.println(num+": "+line.toUpperCase());//콘솔에 출력
			//////////////////
			bw.write(num+": "+line);//파일에 출력
			bw.newLine();
			bw.flush();
		}//-----------
		pw.println(targetFile+"을 열어보세요^^");
		br.close(); bw.close(); pw.close();
		fr.close(); fw.close();
		
		
	}//main()--------
}


'Java > I_O' 카테고리의 다른 글

Random Access File  (0) 2011.12.11
Object Input Output Stream  (0) 2011.12.11
스트림 분류  (0) 2011.12.11
Buffered Reader Writer  (0) 2011.12.11
FileReader, FileWriter  (0) 2011.12.10