Hamutaro - Hamtaro 4

Java

[JAVA] ์ž…์ถœ๋ ฅ(I/O) ๋ณด์กฐ ์ŠคํŠธ๋ฆผ : BufferedReader, BufferedWriter

carsumin 2022. 1. 11. 14:37

https://docs.oracle.com/javase/tutorial/essential/io/streams.html

 

I/O Streams (The Java™ Tutorials > Essential Java Classes > Basic I/O)

The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no longer available. See Java Language Changes for a summary of updated

docs.oracle.com

 

 

์ž…์ถœ๋ ฅ(I/O) ์ŠคํŠธ๋ฆผ

 

  • ์ŠคํŠธ๋ฆผ(Stream)์ด๋ž€?
์ŠคํŠธ๋ฆผ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ์ „๋‹ฌํ•˜๋Š” ํ†ต๋กœ
์ž…๋ ฅ์ŠคํŠธ๋ฆผ(Input Stream)์€ ์™ธ๋ถ€ ์†Œ์Šค์—์„œ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด๋“ค์ด๋Š” ์—ญํ• , ์ถœ๋ ฅ์ŠคํŠธ๋ฆผ(Output Stream)์€ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์™ธ๋ถ€ ์†Œ์Šค๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

 

BufferedReader

 

  • ํ…์ŠคํŠธ ํŒŒ์ผ์ด๋‚˜ ๋‹ค๋ฅธ ์ž…๋ ฅ ์†Œ์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ด
  • ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž…๋ ฅ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ด
  • ๋ฌธ์ž, ๋ฐฐ์—ด, ์ค„ ๋‹จ์œ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์Œ

 

  • ์ƒ์„ฑ์ž
BufferedReader(Reader in)
BufferedReader(Reader in, int sz)

 

  • ์ฃผ์š” ๋ฉ”์„œ๋“œ
String readLine() : ํ•œ ์ค„ ์ฝ์–ด์˜ด, ์ฝ์„ ์ค„ ์—†์œผ๋ฉด null ๋ฆฌํ„ด
int read() : ํ•˜๋‚˜์˜ ๋ฌธ์ž ์ฝ์–ด์˜ด, ์ฝ์„ ๋ฌธ์ž ์—†์œผ๋ฉด -1 ๋ฆฌํ„ด
int read(char[] cbuf, int off, int len) : ํŠน์ • ํฌ๊ธฐ๋งŒํผ ๋ฌธ์ž๋ฅผ ์ฝ์–ด์™€์„œ ๋ฐฐ์—ด์— ์ €์žฅ
void close() : ์ŠคํŠธ๋ฆผ์„ ๋‹ซ์•„ ๋ฆฌ์†Œ์Šค ํ•ด์ œ

 

  • ์˜ˆ์ œ
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class BufferedReaderExample {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("input.txt"))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

 

 

BufferedWriter

 

  • ํ…์ŠคํŠธ ํŒŒ์ผ์ด๋‚˜ ๋‹ค๋ฅธ ์ถœ๋ ฅ ์†Œ์Šค์— ๋ฐ์ดํ„ฐ๋ฅผ ์“ฐ๋Š” ๋ฐ ์‚ฌ์šฉ
  • ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ด
  • ๋ฌธ์ž, ๋ฐฐ์—ด, ์ค„ ๋‹จ์œ„๋กœ ์“ธ ์ˆ˜ ์žˆ์Œ
  • ์ƒ์„ฑ์ž
BufferedWriter(Writer out)
BufferedWriter(Writer out, int sz)

 

  • ์ฃผ์š” ๋ฉ”์„œ๋“œ
void write(String s) : ๋ฌธ์ž์—ด์„ ์“ด๋‹ค
void write(char[] cbuf, int off, int len) : ํŠน์ • ํฌ๊ธฐ๋งŒํผ์˜ ๋ฌธ์ž ๋ฐฐ์—ด์„ ์“ด๋‹ค
void newLine() : ์ƒˆ ์ค„ ๋ฌธ์ž๋ฅผ ์“ด๋‹ค
void flush() : ๋ฒ„ํผ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๊ฐ•์ œ ์ถœ๋ ฅ, ๋ฒ„ํผ์— ๋‚จ์•„์žˆ๋Š” ๋ฐ์ดํ„ฐ ๋ชฉ์ ์ง€๋กœ ๋ฐ€์–ด๋ƒ„
void close() : ์ŠคํŠธ๋ฆผ์„ ๋‹ซ๊ณ  ๋ฒ„ํผ์— ๋‚จ์•„์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ๋‘ ์ถœ๋ ฅํ•œ ๋’ค ๋ฆฌ์†Œ์Šค ํ•ด์ œ

 

  • ์˜ˆ์ œ
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class BufferedWriterExample {
    public static void main(String[] args) {
        try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {
            bw.write("Hello, World!");
            bw.newLine();
            bw.write("BufferedWriter example.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}