๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’ป/JAVA

(33) [JAVA] 18์ผ ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ(I/O Stream)

by ๋”ฐ๊ถˆ 2024. 4. 3.

 

 

์ž…์ถœ๋ ฅ(Input/Output) ์Šคํฌ๋ฆผ์ด๋ž€?
์ž๋ฐ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ์€ ์ŠคํŠธ๋ฆผ์ด๋ผ๋Š” ๊ฐœ๋…์— ์˜ํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค.
์ŠคํŠธ๋ฆผ์€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ๊ณผ ์ž…์ถœ๋ ฅ ์žฅ์น˜๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ชจ๋“›ํ˜ธ์„œ, ์ž…์ถœ๋ ฅ
์žฅ์น˜์™€ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ „์†ก๋˜๋„๋ก ํ•œ๋‹ค.
๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ์‹œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ํ˜•ํƒœ์™€๋Š” ๊ด€๊ณ„ ์—†์ด ์ผ๋ จ๋œ ํ๋ฆ„์œผ๋กœ ์ „์†ก์„ ํ•˜๋Š” ๊ฒƒ์ด
์ž…์ถœ๋ ฅ ๋ชจ๋ธ์˜ ๊ธฐ๋ณธ ๊ฐœ๋…

๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ : 1byte๋‹จ์œ„๋กœ ์ž…์ถœ๋ ฅ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๊ธฐ๋ณธ ์ž…์ถœ๋ ฅ ๋‹จ์œ„
๋ฌธ์ž ์ŠคํŠธ๋ฆผ: 2byte์˜ ๋ฌธ์ž ๋‹จ์œ„๋กœ ์ž…์ถœ๋ ฅ์„ ์ˆ˜ํ–‰

์ž…์ถœ๋ ฅ ์˜ˆ์™ธ ํด๋ž˜์Šค 

  • java.io.IOException
    ์ž…์ถœ๋ ฅ ์ฒ˜๋ฆฌ์ค‘ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ• ๋•Œ, ๋Œ€๋ถ€๋ถ„ ์ž…์ถœ๋ ฅ ๊ด€๋ จ ์˜ˆ์™ธ ํด๋ž˜์Šค์˜ ์ƒ์œ„ ํด๋ž˜์Šค
  • java.io.FileNotFoundException
    ์ง€์ •๋œ ๊ฒฝ๋กœ์— ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ
  • java.io.EOFException 
    ์ž…๋ ฅ ๋„์ค‘ ์˜ˆ๊ธฐ์น˜ ์•Š๊ฒŒ ํŒŒ์ผ์ด ๋๋‚˜ ์ŠคํŠธ๋ฆผ ์ข…๋ฃŒ์— ๋„๋‹ฌํ–ˆ์Œ์„ ์•Œ๋ฆฌ๋Š” ์˜ˆ์™ธ, ์ฃผ๋กœ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์˜ ์ข…๋ฃŒ๋ฅผ ์•Œ๋ฆฌ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค. 

 

ํ‘œ์ค€ ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ

  • System.in
    ํ‘œ์ค€ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์œผ๋กœ, ์—ด๋ ค ์žˆ์–ด ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค
  • System.out
    ํ‘œ์ค€ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์œผ๋กœ, ์—ด๋ ค ์žˆ์–ด ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • System.err
    ํ‘œ์ค€ ์—๋Ÿฌ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์œผ๋กœ, ์—ด๋ ค ์žˆ์–ด ๋ฐ”๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ

  • ์ŠคํŠธ๋ฆผ์˜ ๊ธฐ๋ณธ ์ž…์ถœ๋ ฅ ๋‹จ์œ„๋Š” ๋ฐ”์ดํŠธ
  • 1๋ฐ”์ดํŠธ(8bit) ๋‹จ์œ„๋กœ ์ž…์ถœ๋ ฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • 2์ง„ ๋ฐ์ดํ„ฐ์˜ ์ž…์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ชจ๋“  ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๋Š” InputStream๋ฐ OutputStream ํด๋ž˜์Šค์˜ ์„œ๋ธŒ ํด๋ž˜์Šค 

์ฃผ์š” ๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค ๊ณ„์ธต

 

๋ฌธ์ž ์ŠคํŠธ๋ฆผ

  • 2๋ฐ”์ดํŠธ(16bit)์˜ ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž๋ฅผ ์ž…์ถœ๋ ฅ ํ•˜๊ธฐ ์œ„ํ•œ ์ŠคํŠธ๋ฆผ
  • ๋ฌธ์ž ๋‹จ์œ„๋กœ ์ž…์ถœ๋ ฅ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. 
  • ๋ชจ๋“  ๋ฌธ์ž ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๋Š” Reader ๋ฐ Writer ํด๋ž˜์Šค์˜ ์„œ๋ธŒ ํด๋ž˜์Šค 

์ฃผ์š” ๋ฌธ์ž ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค ๊ณ„์ธต

 

InputStream

์ถ”์ƒ ํด๋ž˜์Šค๋กœ, ๋ชจ๋“  ๋ฐ”์ดํŠธ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค

 

package ch14.unit02;

public class Ex01_InputStream {

	public static void main(String[] args) {
		int data;
		char ch;
		
		//System.in : InputStream ๊ฐ์ฒด. byte ์ŠคํŠธ๋ฆผ
		//InputStream ์˜ read() : 1byte๋ฅผ ์ฝ์–ด ASCII ์ฝ”๋“œ ๋ฐ˜ํ™˜
		
		/*
		 * -ABC ์—”ํ„ฐ : 65 66 67 13 10
		 * -๋Œ€ํ•œ์—”ํ„ฐ : 235 140 128 237 149 156 13 10(UTF8) 
		 * -12์—”ํ„ฐ : 
		 */
		
		
		try {
			System.out.println("๋ฌธ์ž์—ด[Ctrl+Z] ?");
			while((data=System.in.read()) !=-1) {
				//System.out.println(data);
				ch=(char)data;
				//System.out.print(ch); // ๋Œ€ํ•œ > ๋Œ€ํ•œ์œผ๋กœ ์•ˆ๋‚˜์˜ด 
				//ํ•œ๊ธ€์ด ๊นจ์ง. 3byte ๋ฌธ์ž(UTF-8)๋ฅผ 1byte๋งŒ ์ฝ์–ด์„œ 2byte๋ฅผ ์ถœ๋ ฅ ํ–ˆ์œผ๋ฏ€๋กœ
				System.out.write(ch); // ๋Œ€ํ•œ > ๋Œ€ํ•œ์œผ๋กœ ๋‚˜์˜ด
				//ํ•˜์œ„ 1 byte๋ฅผ ์ถœ๋ ฅ. ํ•œ๊ธ€ ๊นจ์ง€์ง€ ์•Š์Œ 
			}
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}

 

package ch14.unit02;

import java.io.IOException;

public class Ex02_InputStream {

	public static void main(String[] args) {
		int data;
		
		
		try {
			System.out.println("ABCDEF ์ž…๋ ฅํ›„ ์—”ํ„ฐ...");
			data=System.in.read();
			System.out.write(data); // ํ•˜์œ„ 1byte๋ฅผ ์ถœ๋ ฅ ๋ฒ„ํผ์— ๋ณด๋ƒ„ 
			
			
			System.in.skip(2); // 2byte๋ฅผ ์ฝ์–ด์„œ ๋ฒ„๋ฆผ 
			
			data=System.in.read();
			System.out.write(data); // D
			
			System.in.skip(4); // ef์—”ํ„ฐ ์ฝ์–ด ๋ฒ„๋ฆผ
			
			System.out.flush(); // ๋ฒ„ํผ์˜ ๋‚ด์šฉ์„ ์ถœ๋ ฅ ์žฅ์น˜๋กœ ๋ณด๋ƒ„
			
			
		} catch (IOException e) {
			
			e.printStackTrace();
		}

	}

}

 

package ch14.unit02;


/*
 	1.์ฆ๊ฐ€ 2.๊ฐ์†Œ 3.์ข…๋ฃŒ =>1
 	speed:1
 	
 	1.์ฆ๊ฐ€ 2.๊ฐ์†Œ 3.์ข…๋ฃŒ =>1
 	speed:2
 	
 */



public class Ex03_InputStream {

	public static void main(String[] args) {
		Boolean run=true;
		int n=0;
		char ch;
		
		try {
			while(run) {
				do {
					System.out.print("1.์ฆ๊ฐ€ 2.๊ฐ์†Œ 3.์ข…๋ฃŒ =>");
					ch=(char)System.in.read();
					System.in.skip(2);
			} while (ch<'1'||ch>'3');
				switch(ch) {
				case '1' :n++; break;
				case '2' :n--; break;
				case '3' :run =false; break;
				}
				System.out.println("speed:"+n+"\n");
			}
		} catch (Exception e) {
			// TODO: handle exception
		}

	}

}

 

 

OutputStream 

์ถ”์ƒ ํด๋ž˜์Šค๋กœ ๋ชจ๋“  ๋ฐ”์ดํŠธ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค 

 

package ch14.unit02;

import java.io.OutputStream;

public class Ex11_OutputStream {

	public static void main(String[] args) {
		
		try {
			// OutputStream: ์ถœ๋ ฅ byte ์ŠคํŠธ๋ฆผ 
			OutputStream os=System.out;
			
			os.write(65); // ํ•˜์œ„ 1byte ๋ฅผ ์ถœ๋ ฅ ๋ฒ„ํผ๋กœ ๋ณด๋ƒ„
							// ๋ฒ„ํผ ํฌ๊ธฐ๋Š” 128์ด๋ฏ€๋กœ 129๋ฒˆ ์ถœ๋ ฅํ•˜๋ฉด ์ถœ๋ ฅ 
			os.write(66);
			os.write(67);
			
			// ์ถœ๋ ฅ ๋ฐฉ๋ฒ• - 1
			//os.write(10); // <-์—”ํ„ฐ
			
			// ์ถœ๋ ฅ ๋ฐฉ๋ฒ• - 2
			//os.close();
			//System.out.println("end...."); <- System.out์„ ๋‹ซ์•„์„œ ์ถœ๋ ฅ ์•ˆ๋จ
			
			// ์ถœ๋ ฅ ๋ฐฉ๋ฒ• - 3
			os.flush();
			
			
		} catch (Exception e) {
			e.printStackTrace();
					}

	}

}

 

package ch14.unit02;

import java.io.OutputStream;

public class Ex12_OutputStream {

	public static void main(String[] args) {
		int data=97;
		byte[] b= {65,66,67,68,69,70};
		
		try {
			System.out.write(data); // ํ•˜์œ„ 1byte ์ถœ๋ ฅ
			System.out.println();
			//System.out.flush();
			
			//up=casting
			OutputStream os=System.out;
			
			os.write(b,2,3); // CDE
			System.out.println(); // 
			
			os.write(b,0,b.length); // 
			System.out.println(); // ABCDEF
			
			os.write(235);
			os.write(140);
			os.write(128); 
			System.out.println(); // ๋Œ€ 
			
			os.close();
			
			System.out.println("end..."); // ์ถœ๋ ฅ ์•ˆ๋จ 
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}

 

 

Reader

๋ฌธ์ž ์ž…๋ ฅ์„ ์œ„ํ•œ ์ถ”์ƒํด๋ž˜์Šค๋กœ, ๋ชจ๋“  ๋ฌธ์ž ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค 

 

package ch14.unit02;

import java.io.InputStreamReader;
import java.io.Reader;

public class Ex21_Reader {

	public static void main(String[] args) {
		int data;
		char ch;
		
		try {
			// -InputStreamReader
			// : byte stream์„ ๋ฌธ์ž stram์œผ๋กœ ๋ณ€๊ฒฝ
			
			Reader rd=new InputStreamReader(System.in);
			
			//ABC ์—”ํ„ฐ : 65 66 67 13 10 
			//๋Œ€ํ•œ์—”ํ„ฐ : 45824 54620 13 10
			//์˜๋ฌธ์ž,ํ•œ๊ธ€ ๋ชจ๋‘ ํ•œ๋ฒˆ์— ํ•œ๋ฌธ์ž์”ฉ ์ž…๋ ฅ
			System.out.println("์ž…๋ ฅ[ctrl+z:์ข…๋ฃŒ]");
			 while((data=rd.read())!=-1) {
				 //System.out.println(data);
				 ch=(char)data;
				 
				 //System.out.print(ch);
				 //ํ•œ๊ธ€๊นจ์ง,2byte๋ฌธ์ž๋ฅผ 1byte ์ถœ๋ ฅํ•˜๋ฏ€๋กœ
				 System.out.print(ch);
			 }
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}

 

 

Writer

๋ฌธ์ž ์ถœ๋ ฅ์„ ์œ„ํ•œ ์ถ”์ƒ ํด๋ž˜์Šค๋กœ, ๋ชจ๋“  ๋ฌธ์ž ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค 

 

package ch14.unit02;

import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.Reader;
import java.io.Writer;

public class Ex22_Writer {

	public static void main(String[] args) {
		int data;
		
		try {
			Reader rd= new InputStreamReader(System.in);
			Writer wt= new OutputStreamWriter(System.out);
			
			System.out.println("๋ฌธ์ž์—ด[ctr]+z:์ข…๋ฃŒ...");
			
			while((data=rd.read())!=-1){
				wt.write(data);
				wt.flush(); // ์ถœ๋ ฅ์ด ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งŽ์€ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜๊ฑฐ๋‚˜ 
							// ctrl+z๋ฅผ ๋ˆŒ๋Ÿฌ์•ผ ํ•จ
				
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}

 

 

 


 

 

ํ•„ํ„ฐ ์ŠคํŠธ๋ฆผ์ด๋ž€?
ใ…ฃใ„นํ„ฐ ์ŠคํŠธ๋ฆผ์€ ๊ธฐ์กด์˜ ์ŠคํŠธ๋ฆผ์„ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ์ƒˆ๋กœ์šด ์ŠคํŠธ๋ฆผ์œผ๋กœ ๋ฐ”๊พธ์–ด ์ฃผ๋Š” ์ŠคํŠธ๋ฆผ์ด๋‹ค.
ํ•„ํ„ฐ ์ŠคํŠธ๋ฆผ์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค์—๋Š” FilterInputStream๊ณผ
FilterOutputStream ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. 
์‹ค์ œ ๋ฐ์ดํ„ฐ ์†Œ์Šค์—์„œ ์ŠคํŠธ๋ฆผ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์ŠคํŠธ๋ฆผ๊ณผ ์—ฐ๊ฒฐํ•˜๋Š” ์šฉ๋„๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
๋”ฐ๋ผ์„œ ์ž…/์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋กœ ๋ณ€ํ™˜ํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€ ์ž‘์—…์„ ํ•˜๋Š” ํด๋ž˜์Šค๋‹ค. 

 

 

 

FilterInputStream

ํ•„ํ„ฐ ๋ฐ”์ดํŠธ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค. FilterInputSteam ํด๋ž˜์Šค์™€ ๊ทธ ํ•˜์œ„ ํด๋ž˜์Šค๋Š” ์ƒ์„ฑํ•  ๋•Œ์— ๋‹ค๋ฅธ ์ŠคํŠธ๋ฆผ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ์ž๋กœ ๋ฐ›๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ๋ณธ ์ŠคํŠธ๋ฆผ์— ํŠน์ • ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ํ•„ํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์—ฐ๊ฒฐํ•˜๋ฉด ์›ํ•˜๋Š” ๋™์ž‘์„ ํ•  ์ˆ˜์žˆ๋‹ค. 

 

 

FilterOutputStream

ํ•„ํ„ฐ ๋ฐ”์ดํŠธ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค. FilterOutputSteam ํด๋ž˜์Šค์™€ ๊ทธ ํ•˜์œ„ ํด๋ž˜์Šค๋Š” ์ƒ์„ฑํ•  ๋•Œ์— ๋‹ค๋ฅธ ์ŠคํŠธ๋ฆผ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ์ž๋กœ ๋ฐ›๋Š”๋‹ค. ๋ณธ ์ŠคํŠธ๋ฆผ์— ํŠน์ • ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ํ•„ํ„ฐ ์ŠคํŠธ๋ฆผ์„ ์—ฐ๊ฒฐํ•˜๋ฉด ์›ํ•˜๋Š” ๋™์ž‘์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ƒ์„ฑ์ž ๋ฐ ์ฃผ์š” ๋ฉ”์†Œ๋“œ

 

package ch14.unit03;

import java.io.FileOutputStream;

public class Ex01_FileOutputStream {

	public static void main(String[] args) {
		String pathname="test.txt";
		FileOutputStream fos=null;
		int data;
		
		try {
			//FileOutputStream : ํŒŒ์ผ byte ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ
			//				   : ํŒŒ์ผ์ด ์—†์œผ๋ฉด ๋งŒ๋“ค๊ณ , ์žˆ์œผ๋ฉด ์ง€์šฐ๊ณ  ๋งŒ๋“ฆ
			
			
			fos=new FileOutputStream(pathname);
			
			System.out.println("๋ฌธ์ž์—ด ์ž…๋ ฅ[์ข…๋ฃŒ:Ctrl+z]...");
			while((data = System.in.read()) != -1){
				fos.write(data); // ํŒŒ์ผ์— ์ €์žฅ
			}
			
			
			System.out.println("ํŒŒ์ผ ์ €์žฅ ์™„๋ฃŒ...");
		} catch (Exception e) {
			e.printStackTrace();
		}finally {
			if(fos!=null) {
				try {
					fos.close();
				} catch (Exception e2) {
				}
			}
		}
		
	}

}

 

package ch14.unit03;

import java.io.FileOutputStream;
import java.io.IOException;

public class Ex02_FileOutputStream {

    public static void main(String[] args) {
        int data;
        String pathname = "test.txt";

        // JDK 7.0 ์ด์ƒ, ์ž๋™ close
        try (FileOutputStream fos = new FileOutputStream(pathname)) {
            System.out.println("๋‚ด์šฉ ์ž…๋ ฅ[Ctrl+z์ข…๋ฃŒ]...");
            while ((data = System.in.read()) != -1) {
                fos.write(data);
            }
            fos.flush();
            System.out.println("ํŒŒ์ผ ์ €์žฅ ์™„๋ฃŒ!!!!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

package ch14.unit03;

import java.io.FileOutputStream;
import java.io.IOException;

public class Ex03_FileOutputStream {

    public static void main(String[] args) {
        int data;
        String pathname = "test.txt";

        // true: append ์—†์œผ๋ฉด ๋งŒ๋“ค๊ณ  ์žˆ์œผ๋ฉด ์ถ”๊ฐ€
        try (FileOutputStream fos = new FileOutputStream(pathname, true)) {
            System.out.println("๋‚ด์šฉ ์ž…๋ ฅ[Ctrl+z์ข…๋ฃŒ]...");
            while ((data = System.in.read()) != -1) {
                fos.write(data);
            }

            fos.flush();
            System.out.println("ํŒŒ์ผ ์ €์žฅ ์™„๋ฃŒ!!!!");

        } catch (IOException e) {
            e.printStackTrace();
        }

    }

}

 

package ch14.unit03;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;




public class Ex11_FileOutputStream {

	public static void main(String[] args) {
		
		String pathname="text.txt";
		int data;
				
	       try (FileInputStream fis = new FileInputStream(pathname)) {
	            while ((data = fis.read()) != -1) {
	                System.out.write(data);
	            }
	        } catch (FileNotFoundException e) {
	            System.out.println(pathname + " ํŒŒ์ผ์ด ์—†์Œ");
	        } catch (IOException e) {
	            e.printStackTrace();
	        }
	    }
	}