์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- database
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ๊ฐ๋ฐ
- ๋ ์
- ๊ฐ์ดํ ์ข ๋ญ๊ฐ๋น
- ํ๋ก๊ทธ๋๋ฐ
- ์ฑ
- ์นดํ๋๊ฐ
- ์ฝ๋ฉ
- ๋๊ฐ
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- ์ค๋ธ์
- ํ์ฒ์ ๋ฆฌํธ๋ฆฌํธ
- Java
- ์ํ
- JavaScript
- ์๋ฐ์คํฌ๋ฆฝํธ
- css
- ์นํผ๋ธ๋ฆฌ์ฑ
- ๋ฐฐ์์ ๋ฐฐ์
- ํ์ด์ฌ
- ์๋ฐ
- ์ํ์ฃผ
- Python
- ์ ๋ฆฌํธ๋ฆฌํธ
- ์ค๋ผํด
- ๋ฐ์ํ
- html
- Today
- Total
JiYoung Dev ๐ฅ
Java BufferedReader์ BufferedWriter ์ฌ์ฉ๋ฒ๊ณผ ๊ธฐ๋ณธ์๋ฆฌ(I/O) ๋ณธ๋ฌธ
Java BufferedReader์ BufferedWriter ์ฌ์ฉ๋ฒ๊ณผ ๊ธฐ๋ณธ์๋ฆฌ(I/O)
Shinjio 2023. 11. 6. 22:28๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ๋น ๋ฅธ ์ ์ถ๋ ฅ์ ์ํด BufferedReader์ BufferedWriter๋ฅผ ์ฌ์ฉํ๋ค๋ ์ฌ์ค์ ์๊ฒ ๋์๋ค. ํ๋ก๊ทธ๋๋จธ์ค์์ ๋ฌธ์ ๋ฅผ ํ ๋์๋ ์ง์ ์ ์ถ๋ ฅ์ ์์ฑํ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด์ ์๋ Scanner์ System.out.print()๋ฅผ ์ฌ์ฉํ๋๋ฐ, ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ํ ๋ BufferedReader์ BufferedWriter๋ฅผ ์์ฃผ ์ฌ์ฉํ๊ฒ ๋ ๊ฒ ๊ฐ์ ์ด๋ฒ ๊ธฐํ์ ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ ค ํ๋ค.
์๋ฐ์์์ ์ ์ถ๋ ฅ(I/O)
I/O๋ Input๊ณผ Output์ ์ฝ์๋ก ์ ๋ ฅ๊ณผ ์ถ๋ ฅ, ์ฆ ์ ์ถ๋ ฅ์ ๋งํ๋ค. ์ ์ถ๋ ฅ์ด๋, ์ปดํจํฐ ๋ด๋ถ ๋๋ ์ธ๋ถ์ ์ฅ์น์ ํ๋ก๊ทธ๋จ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ฒ์ผ๋ก ํค๋ณด๋๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ๋ฐ๊ณ , ํ๋ฉด์ ์ถ๋ ฅํ๋ ๊ฒ์ด ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ ์ถ๋ ฅ์ ์๋ผ๊ณ ํ ์ ์๋ค.
์คํธ๋ฆผ(Stream)
์๋ฐ์์ ์ ์ถ๋ ฅ์ ์ํํ๊ธฐ ์ํด์๋ ๋ ๋์์ ์ฐ๊ฒฐํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ '์คํธ๋ฆผ(Stream)'์ด ํ์ํ๋ค.
์คํธ๋ฆผ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ด๋ฐํ๋๋ฐ ์ฌ์ฉ๋๋ ์ฐ๊ฒฐํต๋ก
์คํธ๋ฆผ์ ๋จ๋ฐฉํฅ ํต์ ๋ง ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ํ๋์ ์คํธ๋ฆผ์ผ๋ก ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ๋์์ ์ฒ๋ฆฌํ ์ ์๋ค. ๋ฐ๋ผ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ๋์์ ์ฒ๋ฆฌํ๋ ค๋ฉด ์ ๋ ฅ์ ์ํ ์ ๋ ฅ ์คํธ๋ฆผ(Input Stream), ์ถ๋ ฅ์ ์ํ ์ถ๋ ฅ ์คํธ๋ฆผ(Output Stream) 2๊ฐ์ ์คํธ๋ฆผ์ด ํ์ํ๋ค.
์คํธ๋ฆผ์ ๋จผ์ ๋ณด๋ธ ๋ฐ์ดํฐ๋ฅผ ๊ฑด๋๋ ์์ด ๋จผ์ ๋ฐ๋ 'ํ(queue)'์ ๊ฐ์ 'FIFO' ๊ตฌ์กฐ๋ก ๋์ด ์๋ค๊ณ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ๊ฐ ์ฝ๋ค.
๋ฐ์ดํธ ๊ธฐ๋ฐ ์คํธ๋ฆผ - InputStream, OutputStream
์คํธ๋ฆผ์ ๋ฐ์ดํธ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉฐ ์ ์ถ๋ ฅํ๋ ๋์์ ๋ฐ๋ผ ์๋์ ๊ฐ์ ์ข ๋ฅ๊ฐ ์๋ค. ์ด๋ฌํ ์คํธ๋ฆผ์ ๋ชจ๋ InputStream๊ณผ OutputStream์ ์์๋ค๋ก ๊ฐ๊ฐ ์ฝ๊ณ ์ฐ๋๋ฐ ํ์ํ ์ถ์๋ฉ์๋๋ฅผ ์์ ์ ๋ง๊ฒ ๊ตฌํํด ๋์๋ค.
์ ๋ ฅ์คํธ๋ฆผ | ์ถ๋ ฅ์คํธ๋ฆผ | ์ ์ถ๋ ฅ ๋์ |
FileInputStream | FileOutputStream | ํ์ผ |
ByteArrayInputStream | ByteArrayOutputStream | ๋ฉ๋ชจ๋ฆฌ(byte๋ฐฐ์ด) |
PipedInputStream | PipedOutputStream | ํ๋ก์ธ์ค(ํ๋ก์ธ์ค ๊ฐ์ ํต์ ) |
AudioInputStream | AudioOutputStream | ์ค๋์ค ์ฅ์น |
์์ ์คํธ๋ฆผ ์ธ์๋ ์คํธ๋ฆผ์ ๊ธฐ๋ฅ์ ๋ณด์ํ๊ธฐ ์ํ ๋ณด์กฐ์คํธ๋ฆผ์ด ์ ๊ณต๋๋ค.
๋ณด์กฐ ์คํธ๋ฆผ์ ์ค์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์คํธ๋ฆผ์ด ์๋๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ถ๋ ฅํ ์ ์๋ ๊ธฐ๋ฅ์ ์์ง๋ง, ์คํธ๋ฆผ์ ๊ธฐ๋ฅ์ ํฅ์์ํค๊ฑฐ๋ ์๋ก์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์๋ค. ๋ฐ๋ผ์ ๋ณด์กฐ์คํธ๋ฆผ๋ง์ผ๋ก๋ ์ ์ถ๋ ฅ์ ์ฒ๋ฆฌํ ์ ์๊ณ , ์คํธ๋ฆผ์ ๋จผ์ ์์ฑํ ๋ค์ ์ด๋ฅผ ์ด์ฉํด ๋ณด์กฐ์คํธ๋ฆผ์ ์์ฑํด์ผ ํ๋ค.
์ ๋ ฅ | ์ถ๋ ฅ | ์ค๋ช |
FilterInputStream | FilterOutputStream | ํํฐ๋ฅผ ์ด์ฉํ ์ ์ถ๋ ฅ ์ฒ๋ฆฌ |
BufferedInputStream | BufferedOutputStream | ๋ฒํผ๋ฅผ ์ด์ฉํ ์ ์ถ๋ ฅ ์ฑ๋ฅ ํฅ์ |
DataInputStream | DataOutputStream | int, float์ ๊ฐ์ ๊ธฐ๋ณธํ ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ |
SequencedIntputStream | ์์ | ๋ ๊ฐ์ ์คํธ๋ฆผ์ ํ๋๋ก ์ฐ๊ฒฐ |
LineNumberInputStream | ์์ | ์ฝ์ด ์จ ๋ฐ์ดํฐ์ ๋ผ์ธ ๋ฒํธ๋ฅผ ์นด์ดํธ (JDK1.1๋ถํฐ LineNumberReader๋ก ๋์ฒด) |
ObjectInputStream | ObjectOutputStream | ๋ฐ์ดํธ๋ฅด ๊ฐ์ฒด ๋จ์๋ก ์ฝ๊ณ ์ฐ๋๋ฐ ์ฌ์ฉ. ์ฃผ๋ก ํ์ผ์ ์ด์ฉํ๋ฉฐ ๊ฐ์ฒด ์ง๋ ฌํ์ ๊ด๋ จ ์์ |
์์ | PrintStream | ๋ฒํผ๋ฅผ ์ด์ฉํ๋ฉฐ, ์ถ๊ฐ์ ์ธ print ๊ด๋ จ ๊ธฐ๋ฅ(print, printf, println) |
PushbackInputStream | ์์ | ๋ฒํผ๋ฅผ ์ด์ฉํด์ ์ฝ์ด ์จ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ๋๋๋ฆฌ๋ ๊ธฐ๋ฅ |
๋ฌธ์ ๊ธฐ๋ฐ ์คํธ๋ฆผ - Reader, Writer
Java์์๋ ํ ๋ฌธ์๋ฅผ ์๋ฏธํ๋ charํ์ด ๋จ์๋ 2byte์ด๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํธ ๊ธฐ๋ฐ์ ์คํธ๋ฆผ์ผ๋ก 2byte์ธ ๋ฌธ์๋ฅผ ์ฒ๋ฆฌํ๋๋ฐ ์ด๋ ค์์ด ์๋ค. ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํ ๊ฒ์ด ๋ฐ๋ก ๋ฌธ์ ๊ธฐ๋ฐ์ ์คํธ๋ฆผ์ด๋ค. ๋ฌธ์๋ฐ์ดํฐ๋ฅผ ์ ์ถ๋ ฅํ ๋์๋ ๋ฐ์ดํธ๊ธฐ๋ฐ ์คํธ๋ฆผ๋์ ๋ฌธ์ ๊ธฐ๋ฐ ์คํธ๋ฆผ์ ์ฌ์ฉํ๋ค.
๋ฐ์ดํธ๊ธฐ๋ฐ ์คํธ๋ฆผ | ๋ฌธ์๊ธฐ๋ฐ ์คํธ๋ฆผ |
FileInputStream FileOutputStream |
FileReader FileWriter |
ByteArrayInputStream ByteArrayOutputStream |
CharArrayReader CharArrayWriter |
PipedInputStream PipedOutputStream |
PipedReader PipedWriter |
StringBufferedInputStream(์ง๊ธ์ X) StringBufferedOutputStream (์ง๊ธ์ X) |
StringReader StringWriter |
๋ฌธ์ ๊ธฐ๋ฐ ๋ณด์กฐ ์คํธ๋ฆผ์ญ์ ์๋์ ๊ฐ์ด ์กด์ฌํ๋ค.
๋ฐ์ดํธ๊ธฐ๋ฐ ๋ณด์กฐ์คํธ๋ฆผ | ๋ฌธ์๊ธฐ๋ฐ ๋ณด์กฐ์คํธ๋ฆผ |
BufferedInputStream BufferedOutputStream |
BufferdReader BufferedWriter |
FilterInputStream FilterOutputStream |
FilterReader FilterWriter |
LineNumberInputStream | LineNumberReader |
PrintStream | PrintWriter |
PushbackInputStream | PushbackReader |
BufferedReader, BufferedWriter
๋ฌธ์ ๊ธฐ๋ฐ์ ๋ณด์กฐ ์คํธ๋ฆผ์ผ๋ก ๋ฒํผ๋ฅผ ์ด์ฉํด ์ ์ถ๋ ฅ์ ํจ์จ์ ๋์ผ ์ ์๋๋ก ํด์ฃผ๋ ์ญํ ์ ํ๋ค.
ํ ๋ฐ์ดํธ์ฉ ์ ์ถ๋ ฅํ๋ ๊ฒ ๋ณด๋ค๋ ๋ฒํผ(๋ฐ์ดํธ ๋ฐฐ์ด)๋ฅผ ์ด์ฉํด์ ํ ๋ฒ์ ์ฌ๋ฌ ๋ฐ์ดํธ๋ฅผ ์ ์ถ๋ ฅํ๋ ๊ฒ์ด ๋น ๋ฅด๊ธฐ ๋๋ฌธ์ ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
๋ฒํผ(Buffer)
์์ ์ ์ฅ ๊ณต๊ฐ
๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ ์ ์ฅํด๋๊ณ ๋ฒํผ๊ฐ ๊ฝ ์ฐจ๊ฑฐ๋, ํน์ ์ปค๋งจ๋๋ฅผ ์ ๋ ฅ๋ฐ์์ ๋ ์ผ๊ด์ ์ผ๋ก ๋ด๋ณด๋ด๊ณ , ๋ฒํผ๋ฅผ ์ด๊ธฐํ ์ํด (๋ฒํผ๋ ๋ํดํธ๋ก 8192๊ฐ์ ๋ฌธ์๋ฅผ ์ ์ฅ)
BufferedReader๋ฅผ ํ์ฉํ ์
๋ ฅ๊ณผ ์ถ๋ ฅ ์์์ด๋ค.
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class BufferedReaderEx {
public static void main(String[] args) {
String line = "";
try {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
do {
bw.write("๋ฌธ์ฅ์ ์
๋ ฅํ์ธ์. ๋ง์น์๋ ค๋ฉด q๋ฅผ ์
๋ ฅํ์ธ์.>");
bw.flush();
line = br.readLine();
bw.write("์
๋ ฅํ์ ๋ฌธ์ฅ : " + line);
bw.newLine();
bw.flush();
}while(!line.equalsIgnoreCase("q"));
br.close();
bw.write("ํ๋ก๊ทธ๋จ์ ์ข
๋ฃํฉ๋๋ค. ");
bw.flush();
}catch(IOException e) {}
}
}
์ฌ์ฉ์ ์ฃผ์์ฌํญ
- try ~ catch ํน์ thows๋ฅผ ํ์ฉํ์ฌ IOException์ ๋ํ ์์ธ์ฒ๋ฆฌ๋ฅผ ํด์ค์ผ ํ๋ค.
- InputStreamReader, OutputStreamWriter๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํธ๊ธฐ๋ฐ ์คํธ๋ฆผ์ ๋ฌธ์๊ธฐ๋ฐ ์คํธ๋ฆผ์ผ๋ก ์ฐ๊ฒฐํ๊ณ , ๋ฐ์ดํธ๊ธฐ๋ฐ ์คํธ๋ฆผ์ ๋ฐ์ดํฐ๋ฅผ ์ง์ ๋ ์ธ์ฝ๋ฉ์ ๋ฌธ์๋ฐ์ดํฐ๋ก ๋ณํํ๋ ์์ ์ ์ํํ๋ค.
Q. BufferedReader์ BufferedWriter๋ ๋ฌธ์๊ธฐ๋ฐ์ ๋ณด์กฐ ์คํธ๋ฆผ์ธ๋ฐ ์ด๋ป๊ฒ ์คํธ๋ฆผ์ ์์ฑํ์ง ์๊ณ ๋ ๋ณด์กฐ์คํธ๋ฆผ์ ์์ฑํ ์ ์๋๊ฐ?
ํ์ค ์ ์ถ๋ ฅ - System.in, System.out
ํ์ค ์ ์ถ๋ ฅ์ ์ฝ์์ ํตํ ๋ฐ์ดํฐ ์ ๋ ฅ๊ณผ ์ฝ์๋ก์ ๋ฐ์ดํฐ ์ถ๋ ฅ์ ์๋ฏธํ๋ค. ์๋ฐ์์๋ ํ์ค ์ ์ถ๋ ฅ(standard I/O)์ 3๊ฐ์ง ์ ์ถ๋ ฅ ์คํธ๋ฆผ(System.in, System.out, System.err)๋ก ์ ๊ณตํ๋๋ฐ, ์ด๋ค์ ์๋ฐ ์ดํ๋ฆฌ์ผ์ด์ ์คํ๊ณผ ๋์์ ์ฌ์ฉํ ์ ์๊ฒ ์๋์ ์ผ๋ก ์์ฑ๋๊ธฐ ๋๋ฌธ์ ๋ณ๋๋ก ์คํธ๋ฆผ์ ์์ฑํ๋ ์ฝ๋๋ฅผ ์์ฑํ์ง ์๊ณ ๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
→ ์ฆ, System.in์ ํ์ค InputStream, System.out์ ํ์ค OutputStream โถ System.in๊ณผ System.out์ ํตํด ์คํธ๋ฆผ์ ์์ฑํ์!
Q. InputStreamReader์ OutputStreamReader๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋?
InputStream์ ํน์ง
1. ์ ๋ ฅ๋ฐ์ ๋ฐ์ดํฐ๋ intํ์ผ๋ก ์ ์ฅ๋๋๋ฐ ์ด๋ 10์ง์์ UTF-16 ๊ฐ์ผ๋ก ์ ์ฅ๋๋ค.
2. 1byte๋ง ์ฝ๋๋ค.
InputStream์ ์ฐ๋ฆฌ๊ฐ InputStream.read()๋ฅผ ํตํด ์ ๋ ฅ์ ๋ฐ์ผ๋ ค๊ณ ํด๋ 1byte๋ง ์ธ์ํ๊ธฐ ๋๋ฌธ์ ํ๊ธ์ ์ ๋๋ก ์ฝ์ง ๋ชปํ๋ค. ์ด ๋ฌธ์๋ฅผ ์จ์ ํ๊ฒ ์ฝ์ด๋ค์ด๊ธฐ ์ํด ํ์ฅํ ๊ฒ์ด 'InputStreamReader'์ด๋ค.
InputStreamReader๋ ๋ฐ์ดํธ ๋จ์๋ก ์ฝ์ด๋ค์ด๋ ํ์์ ๋ฌธ์ ๋จ์(character)๋ก ๋ฐ์ดํฐ๋ก ๋ณํ์ํค๋ ์ค๊ฐ์ ์ญํ ์ ํ๋ค.
๊ฒฐ๋ก
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.in์ ๋ฐ์ดํธ ์คํธ๋ฆผ์ธ InputStream ํ์ ์ด๊ณ ์ธ์ฝ๋ฉ์ ์ํด InputStreamReader๋ก ๊ฐ์ธ์ฃผ๋ฉด์ ๋ฐ์ดํธ ๋จ์ ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์ ๋จ์๋ก ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ค. ๋ํ, BufferReader๋ฅผ ํตํด ์ ๋ ฅ ๋ฐ์ ๋ฌธ์(char)๋ฅผ ์์๋ ๋ค ํ๋ฒ์ ๋ฌธ์์ด(String) ๋จ์๋ก ๋ณด๋ด๋ ๊ฒ์ด๋ผ๊ณ ํ ์ ์๋ค.
BufferedReader์ BufferedWriter ๋จ์
1. ๋์ด์ฐ๊ธฐ(์คํ์ด์ค)์ ๊ฐํ(์ํฐ)๋ฅผ ๊ฒฝ๊ณ๋ก ์ ๋ ฅ ๊ฐ์ ์ธ์ํ๋ Scanner์ ๋ฌ๋ฆฌ BufferedReader๋ ์ํฐ๋ง ๊ฒฝ๊ณ๋ก ์ธ์ํ๊ธฐ ๋๋ฌธ์ ์ค๊ฐ์ ๋์ด์ฐ๊ธฐ๋ก ๊ตฌ๋ถ์ด ํ์ํ ๊ฒฝ์ฐ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํด์ค์ผ ํ๋ค.
2. Buffer๋ก ์ ๋ ฅ๋ฐ๋ ๊ธฐ๋ณธ ํ์ ์ String์ด๋ฏ๋ก int๋ก ์ถ๋ ฅํ ๊ฒฝ์ฐ ํ๋ณํ์ ํด์ฃผ์ด์ผ ํ๋ค.
BufferedReader์ BufferedWriter ํด๋์ค์ ๋ฉ์ธ ๋ฉ์๋
BufferedReader
(void) close() : ์ ๋ ฅ ์คํธ๋ฆผ์ ๋ซ์
(void) mark() : ์คํธ๋ฆผ์ ํ์ฌ ์์น๋ฅผ ๋งํนํจ
(boolean) markSupported() : ์คํธ๋ฆผ์ด mark ๊ธฐ๋ฅ์ ์ง์ํ๋์ง true/false๋ก ์๋ ค์ค
(int) read() : ํ ๊ธ์๋ง ์ฝ์ด ์ ์ํ์ผ๋ก ๋ฐํ
(String) readLine(): ํ ์ค์ ์ฝ์ด String์ผ๋ก ๋ณํ
(boolean) ready() : ์ ๋ ฅ์คํธ๋ฆผ์ด ์ฌ์ฉํ ์ค๋น๊ฐ ๋์๋์ง ํ์ธ
(void) reset() : ๋งํน์ด ์์ผ๋ฉด ๊ทธ ์์น๋ถํฐ ๋ค์ ์์, ๊ทธ๋ ์ง ์์ผ๋ฉด ์ฒ์๋ถํฐ ๋ค์ ์์
(long) skip(long n) : n๊ฐ์ ๋ฌธ์๋ฅผ ๊ฑด๋๋
BufferedWriter
(void) close() : ์ถ๋ ฅ ์คํธ๋ฆผ์ ๋ซ์. ๋ซ๊ธฐ ์ ์ flush() ํ์
(void) flush() : ๋ฒํผ์ ๋จ์ ๊ฐ ์ถ๋ ฅ && ์คํธ๋ฆผ ๋น์ฐ๊ธฐ
(void) newLine(): ๊ฐํ0
(void) write(char[] cbuf, int offset, int length) : ๋ฒํผ offset์์น๋ถํฐ lengthํฌ๊ธฐ๋งํผ write ์ฐ๊ธฐ
(void) write(int c) : ํ ๊ธ์ ์ฐ๊ธฐ
(void) write(String s, int offset, int length) : ๋ฌธ์์ด์์ offset๋ถํฐ ์ผ์ ๊ธธ์ด๋งํผ ์ฐ๊ธฐ
์ฝ๋ฉ์ ์ฌ์ฉํ๋ write๋ฉ์๋๋ Writer๋ก๋ถํฐ ๋ฐ์์จ ๋ฉ์๋
Q. write(int c)๋ฅผ ์ฌ์ฉํ์ฌ ์ ์๋ฅผ ์ ๋ ฅํ์ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ ์ด์
์ด๋ ๊ฒ ์ค๋์ BufferedWriter์ BufferedReader์ ๋ํด ์์๋ณด์๋ค. ๊ณต๋ถํ๊ธฐ ์ ๊น์ง๋ ๊ทธ๋ฅ ์ฌ์ฉ๋ฐฉ๋ฒ๋ง ๋ณด๊ณ ์ฐ๋๋ผ ์ธ์ flush()๋ฅผ ์จ์ผํ๋์ง, ์ ์ด๋ฐ ๊ตฌ์กฐ๊ฐ ๋๋์ง ์ ํ ๋ชฐ๋์๋๋ฐ ๊ณต๋ถ๋ฅผ ํ๊ณ ๋๋ ์ด๋ป๊ฒ ์จ์ผํ ์ง ๊ฐ์ด ์กํ๋ค. ์ฌ๋ฌ ๋ธ๋ก๊ทธ๋ค์ ๋ณด๋ฉด์ ์๋ฐ์ ์ธ์ฝ๋ฉ ๋ฐฉ์๊ณผ ๊ฐ์ ๋ถ๋ถ์ ์ ๋๋ก ์ดํดํ์ง ๋ชปํ์ง๋ง ๊ณ์ ๊ณต๋ถ๋ฅผ ํ๋ค ๋ค์ ๋ณด๊ฒ๋๋ฉด ์ดํด๊ฐ ๋์ง ์์๊น ์๊ฐํ๋ค.
์ฐธ๊ณ ๋ฌธํ
- ์๋ฐ์ ์ ์ (๋จ๊ถ์ฑ)
Java ์ ์ถ๋ ฅ(I/O), ์คํธ๋ฆผ(Stream), ๋ฒํผ(Buffer) ๊ฐ๋ ๋ฐ ์ฌ์ฉ๋ฒ
์ต๊ทผ ๋ฐฑ์ค์์ ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ Buffer ์ ๊ด๋ จํ ๋ฌธ์ ๋ฅผ ๋ง์ฃผ์น๊ฒ ๋์๋ค. ์ฌ์ค ์ง๊ธ๊น์ง Buffer์ ๋ํด์ ์ ๋ง ํ๋๋ ๋ชฐ๋๊ณ , Scanner ๋ง ์ฌ์ฉํ์ฌ ์ ๋ ฅ๋ฐ๊ณ println ์ ํตํด ์ถ๋ ฅํ๊ธฐ๋ง ํ์๋์ง๋ผ ์ด
terianp.tistory.com
JAVA [์๋ฐ] - ์ ๋ ฅ ๋ฏ์ด๋ณด๊ธฐ [Scanner, InputStream, BufferedReader]
์ด ๊ธ์ ์ง๊ธ ์ด ์์ ์ ์จ์ผ ํ ๊น ๊ณ ๋ฏผ์ ๋ง์ด ํ๋ค. ์ฌ์ค ์๋ฐ๋ฅผ ๊ทธ๋ฅ ๋ค๋ฃฐ ์ค๋ง ์๋ ๊ฒ์ ๋ชฉํ๋ฅผ ๋๋ค๋ฉด ์ด ๊ธ์ด ๋ฌด์๋ฏธํ ์๋ ์๋ค. ๊ทธ๋ฌ๋ ์๋ฐ์ ๋ํด ์กฐ๊ธ์ด๋ผ๋ ๊ด์ฌ์ด ์๊ณ ๋ ๋ฐฐ์ฐ๊ณ
st-lab.tistory.com
JAVA - BufferedReader / BufferedWriter (์ ์ถ๋ ฅ ํจ์)
โ BufferedReader / BufferedWriter - Buffer์ ์ ๋ ฅ๋ฐ์ดํฐ๋ฅผ ๋ชจ์์ ํ๋ฒ์ ์ ๋ฌํ๊ธฐ ๋๋ฌธ์ ์๋,ํจ์จ์ฑ ์ธก๋ฉด์์ ์ฑ๋ฅ์ด ์ข๋ค. - ๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ 2741๋ฒ ๋ฌธ์ ๋ฅผ Scanner์ BufferedReader๋ก ์ฝ๋ฉ์ Scanner(696ms) / Bu
kimby.tistory.com