ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA ์ž๋ฐ” ์ž…์ถœ๋ ฅ I/O, ํŒŒ์ผ์ฒ˜๋ฆฌ
    JAVA 2020. 8. 17. 16:48

    ๐ŸŽฏ ์ž๋ฐ” ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ, ํŒŒ์ผ์ฒ˜๋ฆฌ๋ฅผ ์•Œ์•„๋ณธ๋‹ค.

     

     

     

     

    ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ I/O

    ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ฝ์–ด์˜ค๋Š” ๋ชจ๋“  ๊ฐ’์„ ์ธํ’‹ ์ŠคํŠธ๋ฆผ์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ฐ–์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์•„์›ƒํ’‹ ์ŠคํŠธ๋ฆผ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ŠคํŠธ๋ฆผ์€ ์ž๋ฐ”์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์—ฐ์†๋œ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ๋งํ•œ๋‹ค.

     

    ์ฒ˜๋ฆฌ ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜

    ์ž…์ถœ๋ ฅ์œผ๋กœ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ ๋ฐ์ดํ„ฐ๋Š” byte์™€ char ๋‘ ์ข…๋ฅ˜์ด๋‹ค. ํ…์ŠคํŠธ ์œ„์ฃผ์˜ ๋ฐ์ดํ„ฐ ์ž…์ถœ๋ ฅ์‹œ char๋กœ ์ฒ˜๋ฆฌํ•˜๋ฉฐ ํ…์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ์ด๋ฏธ์ง€๊ฐ™์€ ํŒŒ์ผ๋“ค์€ ๋‹ค byte๋กœ ์ฝ์–ด์˜จ๋‹ค. 

    byte๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค๋Š” InputStream๊ณผ OutputStream์ด๋‹ค. ํ•ญ์ƒ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์€ ์Œ์œผ๋กœ ์ œ๊ณต๋˜๋ฉฐ ๋‘ ํด๋ž˜์Šค๋Š” ์ถ”์ƒํด๋ž˜์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ๊ตฌํ˜„์€ ํ•˜์œ„ ์ผ๋ฐ˜ํด๋ž˜์Šค๊ฐ€ ๋‹ด๋‹นํ•œ๋‹ค. byte๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•˜์œ„ํด๋ž˜์Šค๋“ค์˜ ์ด๋ฆ„์„ ๋ณด๋ฉด ๋‹ค stream์œผ๋กœ ๋๋‚œ๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค.

    char๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ํด๋ž˜์Šค๋Š” ์ž…๋ ฅ์„ ๋‹ด๋‹นํ•˜๋Š” Reader์™€ ์ถœ๋ ฅ์„ ๋‹ด๋‹นํ•˜๋Š” Writer๊ฐ€ ์žˆ๋‹ค. ์ด ๋‘ ๊ฐœ ์—ญ์‹œ ์ถ”์ƒํด๋ž˜์Šค์ด๋‹ค. ํ•˜์œ„ํด๋ž˜์Šค์˜ ์ด๋ฆ„์ด reader ๋˜๋Š” writer๋กœ ๋๋‚œ๋‹ค๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

     

    ํ‘œ์ค€์ž…์ถœ๋ ฅ

    ์ž๋ฐ”์˜ ํ‘œ์ค€์ž…๋ ฅ์€ ํ‚ค๋ณด๋“œ์—์„œ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด๋“ค์ด๋Š” ์ž‘์—…์„ ๋งํ•˜๋ฉฐ ํ‘œ์ค€์ถœ๋ ฅ์€ ๋ชจ๋‹ˆํ„ฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์ž‘์—…์„ ์˜๋ฏธํ•œ๋‹ค. ํ‘œ์ค€ ์ž…์ถœ๋ ฅ์€ java.lang.System ํด๋ž˜์Šค๊ฐ€ ๋‹ด๋‹นํ•œ๋‹ค. 

     

    System.in

    ํ‘œ์ค€์ž…๋ ฅ์œผ๋กœ ํ‚ค๋ณด๋“œ์—์„œ ๋ฐ์ดํ„ฐ ์ฝ์–ด๋“ค์ผ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋ณ€์ˆ˜ in์˜ ๋ฐ์ดํ„ฐํ˜•์€ InputStream์ด๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฐ”์ดํŠธ์ฒ˜๋ฆฌ๋œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.

     

    System.out

    ํ‘œ์ค€์ถœ๋ ฅ์œผ๋กœ PrintStream์ด out์˜ ๋ฐ์ดํ„ฐํ˜•์ด๋‹ค. ์ด ํด๋ž˜์Šค์˜ ์ถœ๋ ฅ๋ฉ”์†Œ๋“œ๋กœ print์™€ println ์˜ค๋ฒ„๋กœ๋”ฉ ๋ฉ”์†Œ๋“œ๊ฐ€ ์ œ๊ณต๋œ๋‹ค.

     

     

    ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์ฒ˜๋ฆฌ

    		System.out.println("๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค");
    		InputStream is = System.in;
    		try {
    			int n = is.read();
    			System.out.println((char)n);
    		}catch(IOException e) {
    			e.printStackTrace();
    		}finally {
    			try {
    				if(is!=null) is.close();
    			}catch (IOException e) {
    				e.getStackTrace();
    			}
    		}	

    InputStream.read() ๋ฉ”์†Œ๋“œ๋Š” ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ 1๋ฐ”์ดํŠธ์”ฉ ์ฒ˜๋ฆฌํ•œ๋‹ค. hello๋ฅผ ์ž…๋ ฅํ–ˆ์„ ๋•Œ h๋งŒ ์ฝ์–ด๋“ค์—ฌ์„œ ์•„์Šคํ‚ค์ฝ”๋“œ ๊ฐ’์„ ์ถœ๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ char๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•ด์•ผํ•˜๋ฉฐ ํ•œ๊ธ€์€ 2๋ฐ”์ดํŠธ๋ผ ์ถœ๋ ฅํ•˜์ง€ ๋ชปํ•˜๋Š” ๋น„ํšจ์œจ์ ์ธ ์ž…๋ ฅ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด๋‹ค. ์ž…๋ ฅ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•œ ํ›„ ๋ฐ˜๋“œ์‹œ close()๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ŠคํŠธ๋ฆผ์„ ๋‹ซ์•„์•ผํ•œ๋‹ค. ์ž๋ฐ”์˜ I/O๋Š” ๋ฐ˜๋“œ์‹œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์•ผํ•œ๋‹ค. 

     

    		InputStreamReader reader = null;
    		try {
    			System.out.println("๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค");
    			reader = new InputStreamReader(System.in);
    			int n = reader.read();
    			System.out.println("์ž…๋ ฅ๊ฐ’: "+(char)n);
    		}catch(IOException e) {
    			e.printStackTrace();
    		}finally {
    			try {
    				if(reader != null)reader.close();
    			}catch (IOException e) {
    				e.printStackTrace();
    			}
    		}

    InputStreamReader ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. char๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ๊ธ€์ž๋ฅผ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•œ๊ธ€ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. InputStream์˜ ์ฒ˜๋ฆฌ๋ฐฉ์‹์ธ byte๋ฅผ InputStreamReader์˜ ์ฒ˜๋ฆฌ๋ฐฉ์‹์ธ char๋กœ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž ์ธ์ž๋กœ ์ „๋‹ฌํ•˜๋ฉด ๋œ๋‹ค. ์—ฌ์ „ํžˆ byte์—์„œ char๋กœ ํ˜•๋ณ€ํ™˜์„ ํ•ด์•ผํ•˜๋ฉฐ ํ•œ ๊ธ€์ž๋งŒ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋•Œ๋ฌธ์— ๋น„ํšจ์œจ์ ์ธ ์ฒ˜๋ฆฌ๋ฐฉ์‹์ด๋‹ค.

     

    		BufferedReader buffer = null;
    		try {
    			System.out.println("๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•˜์‹œ์˜ค");
    			buffer = new BufferedReader(new InputStreamReader(System.in));
    			String str = buffer.readLine();
    			System.out.println("์ž…๋ ฅ ๊ฐ’: " + str);
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			try {
    				if (buffer != null)buffer.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}

    BufferedReader ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ํ‚ค๋ณด๋“œ ์ž…๋ ฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. BufferedReader์˜ ์ƒ์„ฑ์ž์— byte์—์„œ char๋กœ ๋ณ€๊ฒฝํ•œ InputStreamReader๋ฅผ ๋„ฃ๋Š”๋‹ค. ๊ฐ„๋‹จํ•œ char์ฒ˜๋ฆฌ ๋ฐฉ์‹์—์„œ ํ•œ์ค„์”ฉ ์ฝ์–ด๋“ค์ด๋Š” ๋‹จ๊ณ„๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ๋˜์—ˆ๋‹ค. readLine() ๋ฉ”์†Œ๋“œ๋Š” ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ์ค„์”ฉ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— ์œ„ ๋ฐฉ๋ฒ•๋ณด๋‹ค ๋” ํšจ์œจ์ ์œผ๋กœ ์ž…๋ ฅ์ฒ˜๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

    ํ‚ค๋ณด๋“œ ์ž…๋ ฅ ์ฒ˜๋ฆฌ๋Š” Scanner ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋” ์‰ฝ๋‹ค.

     

     

    ์ž๋ฐ”์˜ ์ž…์ถœ๋ ฅ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํด๋ž˜์Šค

    Node ๊ณ„์—ด

    byte๋‚˜ char๋กœ ๊ฐ€๊ณต๋˜์ง€ ์•Š์€ ์›์‹œ๋ฐ์ดํ„ฐ๋ฅผ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค ๊ณ„์—ด์ด๋‹ค. ์ž…์ถœ๋ ฅ์˜ ์ƒ์œ„ ํด๋ž˜์Šค๋“ค์ธ InputStream, OutputStream, Reader, Writer๊ฐ€ ์—ฌ๊ธฐ ์†ํ•˜๋ฉฐ ๋น„ํšจ์œจ์ ์œผ๋กœ ์ž…์ถœ๋ ฅํ•œ๋‹ค๋Š” ๊ฒƒ์ด ํŠน์ง•์ด๋‹ค. ์ฝ˜์†”์„ ์ด์šฉํ•  ๋• ๋…ธ๋“œ๊ณ„์—ด์„ ์‚ฌ์šฉํ•œ๋‹ค.

    Filter ๊ณ„์—ด

    ๋…ธ๋“œ ๊ณ„์—ด์—์„œ ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค ๊ณ„์—ด์ด๋‹ค. InputStreamReader๊ณผ BufferedReader, PrintWriter ํด๋ž˜์Šค๊ฐ€ ํ•ด๋‹น๋œ๋‹ค.

     

     

     

    ํŒŒ์ผ ์ฒ˜๋ฆฌ

    File ํด๋ž˜์Šค๋Š” ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ์— ๊ด€ํ•œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค์ด๋‹ค. ํŒŒ์ผ๋ช…, ๋””๋ ‰ํ† ๋ฆฌ๋ช…, ํŒŒ์ผํฌ๊ธฐ, ์ฝ๊ธฐ๋ชจ๋“œ,์“ฐ๊ธฐ๋ชจ๋“œ, ๋””๋ ‰ํ† ๋ฆฌ ์ •๋ณด, ํŒŒ์ผ์‚ญ์ œ, ๋””๋ ‰ํ† ๋ฆฌ ์ƒ์„ฑ ๋“ฑ์˜ ์ž‘์—…์„ ๋‹ด๋‹นํ•œ๋‹ค.

    new File("๋””๋ ‰ํ† ๋ฆฌ");
    new File("ํŒŒ์ผ๋ช…");
    new File("๋””๋ ‰ํ† ๋ฆฌ/ํŒŒ์ผ๋ช…");
    new File("๋””๋ ‰ํ† ๋ฆฌ","ํŒŒ์ผ๋ช…");

    File ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŒŒ์ผ๋ช…, ๋””๋ ‰ํ† ๋ฆฌ ๊ฐ์ฒด, ํŒŒ์ผ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”ํƒ€์ •๋ณด๋ฅผ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

    		File f = new File("c:\\Test","IOTest.java");
    		
    		System.out.println("ํŒŒ์ผํฌ๊ธฐ: "+ f.length());
    		System.out.println("ํŒŒ์ผ์ด๋ฆ„: "+ f.getName());
    		System.out.println("ํŒŒ์ผ๊ฒฝ๋กœ: "+ f.getPath());
    		System.out.println("ํŒŒ์ผ์ ˆ๋Œ€๊ฒฝ๋กœ: "+ f.getAbsolutePath());
    		System.out.println("ํŒŒ์ผ์ด๋ƒ?: "+ f.isFile());
    		System.out.println("๋””๋ ‰ํ† ๋ฆฌ์ด๋ƒ?: "+ f.isDirectory());
    		System.out.println("ํŒŒ์ผ์ด ์กด์žฌ? "+ f.exists());
    		System.out.println("์‹คํ–‰๊ฐ€๋Šฅํ•˜๋ƒ: "+ f.canExecute());
    		System.out.println("write ๊ฐ€๋Šฅ?: "+ f.canWrite());
    		System.out.println("read ๊ฐ€๋Šฅ?: "+ f.canRead());
    		//System.out.println(f.delete());

    ์œ„์™€๊ฐ™์ด File ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋ฉ”ํƒ€์ •๋ณด๋ฅผ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.

     

     

    ํŒŒ์ผ ์ž…์ถœ๋ ฅ

    ์ผ๋ฐ˜ txt ํŒŒ์ผ์— ์ ‘๊ทผํ•  ๋• char ๋‹จ์œ„๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒŒ ํšจ์œจ์ ์ด๊ธฐ ๋•Œ๋ฌธ์— FileReader ๋ฐ FileWriter ๊ฐ™์€ Node๊ณ„์—ด ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์— BufferedReader์™€ PrintWriter์™€ ๊ฐ™์€ Filter ๊ณ„์—ด ํด๋ž˜์Šค๋ฅผ ์ถ”๊ฐ€ํ•ด์„œ ๊ตฌํ˜„ํ•˜๋ฉด ๋” ํšจ์œจ์ ์ธ ํŒŒ์ผ ์ž…์ถœ๋ ฅ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

    ์ด๋ฏธ์ง€ ํŒŒ์ผ๊ณผ ๊ฐ™์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ํŒŒ์ผ์— ์ ‘๊ทผํ•  ๋• byte ๋‹จ์œ„๋กœ๋งŒ ์ฒ˜๋ฆฌ๋˜๋Š” FileInputStream๊ณผ FileOutputStream์„ ์‚ฌ์šฉํ•œ๋‹ค.

     

     

    FileWriter์„ ์‚ฌ์šฉํ•œ ํ…์ŠคํŠธ ํŒŒ์ผ ์ €์žฅ

    C๋“œ๋ผ์ด๋ธŒ Test ํด๋”์— ๋นˆ xyz ํ…์ŠคํŠธ ํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ๋‹ค. 

    		File f = new File("C:\\Test\\xyz.txt");
    		PrintWriter out = null;
    		try {
    			FileWriter writer = new FileWriter(f, true);
    			// ํ•„ํ„ฐ
    			out = new PrintWriter(writer);
    			out.print("happy");
    			// out.flush();
    		} catch (IOException e) {
    			e.printStackTrace();
    		} finally {
    			out.close();
    		}

     File ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ง€์ •ํ•œ xyz.txt ํŒŒ์ผ์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด ์ž๋™์œผ๋กœ ํŒŒ์ผ์„ ์ƒ์„ฑํ•œ๋‹ค. FileWriter ์ƒ์„ฑ์ž์˜ ๋‘๋ฒˆ์งธ ์ธ์ž๊ฐ’์œผ๋กœ true๋ฅผ ์ ์œผ๋ฉด ํŒŒ์ผ์— ๋‚ด์šฉ์ด ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•˜๋ฉฐ false๋Š” ๋ฎ์–ด์“ฐ๊ธฐ ๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค. ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ์ถœ๋ ฅ์„ ์œ„ํ•ด Filter ๊ณ„์—ด์ธ PrintWriter ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  xyz.txt ํŒŒ์ผ์„ ํ™•์ธํ•ด๋ณด๋ฉด "happy"๊ฐ€ ์ถ”๊ฐ€๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

     

     

    FileInputStream๊ณผ FileOutputStream์„ ์‚ฌ์šฉํ•ด ์ด๋ฏธ์ง€ ๋ณต์‚ฌํ•˜๊ธฐ

    		FileInputStream fis = null;
    		FileOutputStream fos = null;
    		try {
    			File readFile = new File("c:\\Test", "a.jpg");
    			File writeFile = new File("c:\\Test", "b.jpg");
    			int size = (int)readFile.length();
    			byte[] readByte = new byte[size];
    			fis = new FileInputStream(readFile);
    			fos = new FileOutputStream(writeFile);
    			int n = fis.read(readByte);
    			fos.write(readByte);
    		}catch (Exception e) {
    			e.printStackTrace();
    		}finally {
    			try {
    				fis.close();
    				fos.close();
    			}catch(IOException e) {
    				e.printStackTrace();
    			}
    		}

    ํŒŒ์ผ ๊ฒฝ๋กœ์™€ ํŒŒ์ผ๋ช…์„ ์ด์šฉํ•ด ํŒŒ์ผ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ ๋’ค ํŒŒ์ผ ์‚ฌ์ด์ฆˆ์˜ ํฌ๊ธฐ๋งŒํผ byte ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค. ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ฝ๊ณ  ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋„๋ก byte์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” FileInputStream๊ณผ FileOutputStream ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•œ๋‹ค. ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ์ฝ๊ณ  ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค. write() ๋ฉ”์†Œ๋“œ๋กœ ๋ฐฐ์—ด์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋ชจ๋“  ์ž‘์—…์ด ๋๋‚˜๋ฉด close()๋กœ ๋‹ซ์•„์ค€๋‹ค.

     

     

     

    ๐Ÿ˜œ NEXT : JDBC ์‚ฌ์šฉํ•˜๊ธฐ

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

๊ฐœ๋ฐœ๊ณต๋ถ€