All :L
[Java] ํ์ผ ์ ์ถ๋ ฅ (File/IO) ๋ณธ๋ฌธ
๋ฐ์ํ
๐ ๋ ธ๋์คํธ๋ฆผ
1๏ธโฃ I/O์ Stream
- I/O → Input/Output
- ๋ฐ์ดํฐ๋ ํ์ชฝ์์ ์ฃผ๊ณ ํ์ชฝ์์ ๋ฐ๋ ๊ตฌ์กฐ๋ก ๋์ด์์
- ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ๋๋จ → ๋ ธ๋(node)
- ๋ ๋ ธ๋๋ฅผ ์ฐ๊ฒฐํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๋ ๊ฐ๋ → ์คํธ๋ฆผ(stream)
- ์คํธ๋ฆผ์ ๋จ๋ฐฉํฅ ํต์ ๋ง ๊ฐ๋ฅ
- ํ๋์ ์คํธ๋ฆผ์ผ๋ก ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ ๊ฐ์ด ์ฒ๋ฆฌํ ์ X
- Node Stream์ ์ข
๋ฅ์ naming
- Node stream → node์ ์ฐ๊ฒฐ๋๋ ์คํธ๋ฆผ
JAVA ๋ ธ๋ ์คํธ๋ฆผ & ๋ณด์กฐ ์คํธ๋ฆผ
- Node stream → node์ ์ฐ๊ฒฐ๋๋ ์คํธ๋ฆผ
2๏ธโฃ InputStream๊ณผ Reader
- InputStream์ ์ฃผ์ ๋ฉ์๋
- read() → ๋ฐ์ดํฐ ์ฝ์ด์ ๋ฐํ
- public abstract int read() throws IOException → byte ํ ๊ฐ์ฉ ์ฝ์
- public int read(byte b[]) throws IOException
- public int read(byte b[], int offset, int len) throws IOException
- close() → ์คํธ๋ฆผ ์ข
๋ฃํด์ ์์ ๋ฐ๋ฉ
- public void close() throws IOException
- read() → ๋ฐ์ดํฐ ์ฝ์ด์ ๋ฐํ
- Reader์ ์ฃผ์ ๋ฉ์๋
- read()
- public int read() throws IOExction → char ํ ๊ฐ์ฉ ์ฝ์
- public int read(char cbuf[] throws IOException → buffer๋งํผ ์ฉ ์ฝ์
- abstract public int read(char cbuf[], int off, int len) throws IOException
- public int read(java.nio.CharBuffer target) throws IOException
- close()
- public void close() throws IOException
- read()
3๏ธโฃ OutputStream๊ณผ Writer
- OutputStream์ ์ฃผ์ ๋ฉ์๋
- write() → ์ ๋ ฅ๋ฐ์ ๋ด์ฉ์ byte, string ๋ฑ์ผ๋ก ๋ณํํด์ ์ถ๋ ฅ
- close() → ์คํธ๋ฆผ ์ข ๋ฃํด์ ์์ ๋ฐ๋ฉ
- flush() → ๋ฒํผ๊ฐ ์๋ ์คํธ๋ฆผ์์ ๋ฒํผ ๋ด์ฉ ์ถ๋ ฅ ํ ๋ฒํผ clear
- Writer์ ์ฃผ์ ๋ฉ์๋
- write() → ์ ๋ ฅ๋ฐ์ ๋ด์ฉ์ char, string ๋ฑ์ผ๋ก ๋ณํํด์ ์ถ๋ ฅ
- append() → ์ถ๋ ฅ ํ ๋ฆฌํด
- close() → ๋ด๋ถ์ ์ผ๋ก flush() ํธ์ถ
- flush() → ๋ฒํผ๊ฐ ์๋ ์คํธ๋ฆผ์์ ๋ฒํผ ๋ด์ฉ ์ถ๋ ฅ ํ ๋ฒํผ clear
4๏ธโฃ ๋ ธ๋ ์คํธ๋ฆผ ํ์ฉ
- File
- ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ ์ถ๋ ฅ ์ฅ์น ์ค ํ๋๋ก ํ์ผ๊ณผ ๋๋ ํฐ๋ฆฌ๋ฅผ ๋ค๋ฃจ๋ ํด๋์ค
- File์ ๋ฉ์๋
- File() → ํ์ผ ์์ฑ
- createNewFile() → ์๋ก์ด ๋ฌผ๋ฆฌ์ ์ธ ํ์ผ ์์ฑ
- mkdir() → ์๋ก์ด ๋๋ ํ ๋ฆฌ ์์ฑ
- mkdirs() → ๊ฒฝ๋ก ์ ์๋ ๋ชจ๋ ๋๋ ํ ๋ฆฌ ์์ฑ
- delete() → ํ์ผ ๋๋ ๋๋ ํฐ๋ฆฌ ์ญ์
- getName(), getPath(), getAbsolutePath(), getCanonicalPath() → ์ด๋ฆ, ๊ฒฝ๋ก, ์ ๋ ๊ฒฝ๋ก, ์ ์ ๊ฒฝ๋ก ๋ฆฌํด
- isDirectory(), isFile() → ๋๋ ํ ๋ฆฌ์ธ์ง ํ์ผ์ธ์ง ๋ฆฌํด
- length() → ํ์ผ ๊ธธ์ด ๋ฆฌํด
- listFiles() → ํ์ผ์ด ๋๋ ํ ๋ฆฌ์ธ ๊ฒฝ์ฐ ์์ ํ์ผ๋ค์ File[]ํํ๋ก ๋ฆฌํด
- FileInputStream & FileOutputStream
- FileInputStream() → name ๊ฒฝ๋ก์ ํ์ผ์ ์ฝ๋ ์คํธ๋ฆผ ์์ฑ
- FileOuputStream() → name ๊ฒฝ๋ก ํ์ผ์ ์ถ๋ ฅํ๋ ์คํธ๋ฆผ ์์ฑ / ๊ธฐ์กด ํ์ผ์ด ์๋ค๋ฉด ์ด์ด์ ์์ฑ
๐ ๋ณด์กฐ์คํธ๋ฆผ
1๏ธโฃ ๋ณด์กฐ ์คํธ๋ฆผ ๊ฐ๋ ๊ณผ ์ข ๋ฅ
- ๋ณด์กฐ ์คํธ๋ฆผ(Filter Stream, Processing Stream)
- ๋ค๋ฅธ ์คํธ๋ฆผ์ ๋ถ๊ฐ์ ์ธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์คํธ๋ฆผ
- ์คํธ๋ฆผ ์ฒด์ด๋(Stream Chaining) → ํ์์ ๋ฐ๋ผ ์ฌ๋ฌ ๋ณด์กฐ ์คํธ๋ฆผ ์ฐ๊ฒฐํด์ ์ฌ์ฉ ๊ฐ๋ฅ
- ๋ณด์กฐ ์คํธ๋ฆผ ์ข
๋ฅ
- byte ์คํธ๋ฆผ์ char ์คํธ๋ฆผ์ผ๋ก ๋ณํ
- InputStreamReader, OutputStreamWriter → byte ๊ธฐ๋ฐ
- ๋ฒํผ๋ง์ ํตํ ์๋ ํฅ์
- BufferedInputStream, BufferedOutputStream → byte ๊ธฐ๋ฐ
- BufferedReader, BufferedWriter → char ๊ธฐ๋ฐ
- ๊ฐ์ฒด ์ ์ก
- ObjectInputStream, ObjectOutputStrema → byte ๊ธฐ๋ฐ
- ์์ฑ → ์ด์ ์คํธ๋ฆผ์ ์์ฑ์์ ํ๋ผ๋ฏธํฐ์ ์ฐ๊ฒฐ
- ์ข ๋ฃ → ๋ณด์กฐ ์คํธ๋ฆผ์ close()๋ฅผ ํธ์ถํ๋ฉด ๋ ธ๋ ์คํธ๋ฆผ์ close()๊น์ง ํธ์ถ ๋จ.
- byte ์คํธ๋ฆผ์ char ์คํธ๋ฆผ์ผ๋ก ๋ณํ
- ์ฌ์ฉ ์คํธ๋ฆผ ๊ฒฐ์ ๊ณผ์
- ๋ ธ๋๊ฐ ๋ญ์ง → ํ์ ์ ๋ญ์ง(byte? String?) → ๋ฐฉํฅ์ด ๋ญ์ง → ์ถ๊ฐ ๊ธฐ๋ฅ์ด ํ์ํ์ง
2๏ธโฃ ๋ณด์กฐ ์คํธ๋ฆผ ํ์ฉ
- InputStreamReader & OutputStreamWriter
- byte ๊ธฐ๋ฐ ์คํธ๋ฆผ์ char ๊ธฐ๋ฐ์ผ๋ก ๋ณ๊ฒฝํด์ฃผ๋ ์คํธ๋ฆผ
- ๋ฌธ์์ด ๊ด๋ฆฌํ๊ธฐ ์ํด byte ๋จ์๋ณด๋ค char ๋จ์๊ฐ ์ ๋ฆฌ
- ํค๋ณด๋์์ ์ ๋ ฅ๋ฐ์ ๋ฐ์ดํฐ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ
- ๋ณํ ์ encoding ์ง์ ๊ฐ๋ฅ
- InputStramReader(), OutputStreamWriter()
- byte ๊ธฐ๋ฐ ์คํธ๋ฆผ์ char ๊ธฐ๋ฐ์ผ๋ก ๋ณ๊ฒฝํด์ฃผ๋ ์คํธ๋ฆผ
- Buffered ๊ณ์ด
- ์คํธ๋ฆผ์ ์
/์ถ๋ ฅ ํจ์จ์ ๋์ด๊ธฐ ์ํด ๋ฒํผ๋ฅผ ์ฌ์ฉํ๋ ์คํธ๋ฆผ
- BufferedInputStream()
- BufferedOutputStream()
- BufferedReader & BufferedWriter
- BufferedReader() → readLine()์ ์ค ๋จ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฝ์
- BufferedWriter()
- ์คํธ๋ฆผ์ ์
/์ถ๋ ฅ ํจ์จ์ ๋์ด๊ธฐ ์ํด ๋ฒํผ๋ฅผ ์ฌ์ฉํ๋ ์คํธ๋ฆผ
3๏ธโฃ ๊ฐ์ฒด ์ง๋ ฌํ(serialization)
- ๊ฐ์ฒด๋ฅผ ํ์ผ ๋ฑ์ ์ ์ฅํ๊ฑฐ๋ ๋คํธ์ํฌ๋ก ์ ์กํ๊ธฐ ์ํด ์ฐ์์ ์ธ ๋ฐ์ดํฐ๋ก ๋ณํํ๋ ๊ฒ
- ๋ฐ๋์ ๊ฒฝ์ฐ๋ ์ญ ์ง๋ ฌํ(deserialization)
- ์ง๋ ฌํ ๋๊ธฐ ์ํ ์กฐ๊ฑด
- Serializable ์ธํฐํ์ด์ค ๊ตฌํํ ๊ฒ
- ํด๋์ค์ ๋ชจ๋ ๋ฉค๋ฒ๊ฐ Serializable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด์ผ ํจ
- ์ง๋ ฌํ์์ ์ ์ธํ๋ ค๋ ๋ฉค๋ฒ๋ transient ์ ์ธ
- SerialVersionUID
- ํด๋์ค์ ๋ณ๊ฒฝ ์ฌ๋ถ๋ฅผ ํ์ ํ๊ธฐ ์ํ ์ ์ผ ํค
- ์ง๋ ฌํํ ๋ UID์ ์ญ ์ง๋ ฌํํ ๋์ UID๊ฐ ๋ค๋ฅผ ๊ฒฝ์ฐ ์์ธ ๋ฐ์
- ์ง๋ ฌํ๋๋ ๊ฐ์ฒด์ UID๊ฐ ์ค์ ๋์ง ์์์ ๊ฒฝ์ฐ ์ปดํ์ผ๋ฌ๊ฐ ์๋ ์์ฑ
- ์ง๋ ฌํ๋๋ ๊ฐ์ฒด์ ๋ํด serialVersionUID ์ค์ ๊ถ์ฅ
4๏ธโฃ ObjectInputStream & ObjectOutputStream
5๏ธโฃ Scanner & BufferedReader
- char ํํ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ธฐ์ํ ํด๋์ค๋ค
- Scanner → ์๋ ํ๋ณํ์ ์ง์ํ๋ ๋ฑ ์ฌ์ฉ์ด ๊ฐํธํ์ง๋ง ์๋๊ฐ ๋๋ฆผ
- BufferedReader → ์ง์ ์คํธ๋ฆผ์ ๊ตฌ์ฑํด์ผ ํ๋ ๋ฑ ๋ฒ๊ฑฐ๋กญ์ง๋ง ์๋๊ฐ ๋น ๋ฆ
๋ฐ์ํ
'STUDY > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ์์ธ (Exception) (0) | 2024.11.01 |
---|---|
[Java] ์ปฌ๋ ์ (Collection) (1) | 2024.10.30 |
[Java] ์ ๋ค๋ฆญ (Generic) (2) | 2024.10.28 |
[Java] ์ธํฐํ์ด์ค (Interface) (0) | 2024.10.26 |
[Java] ๋คํ์ฑ (Polymorphism) (0) | 2024.10.24 |
Comments