์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- docker network
- CICD
- GoogleLogin
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- db์ํคํ ์ณ
- docker
- ์๊ณ ๋ฆฌ์ฆ
- java์ฑํ
- db์ ๋ต
- node.js mysql ์ฐ๋
- Jenkins
- Node.js
- injection๊ณต๊ฒฉ
- ์ฝํ
- SpringBoot
- MySQL
- dockerhub
- @scheduler
- spring
- ํฌ๋ก์ค์ฌ์ดํธ ์คํฌ๋ฆฝํธ
- React
- Personal Access Token
- spring scheduler
- ์ค๋ธ์
- ์ฝ๋ฉํ ์คํธ
- ๋ ผ๋ธ๋กํน
- ์๋ฐ
- Java
- oauth
- ๋์์ธํจํด
- Today
- Total
<Hello Hosung๐/>
[Java] ํ์ผ ์ ์ถ๋ ฅ (IO) ์ดํดํ๊ธฐ ๋ณธ๋ฌธ
[Java] ํ์ผ ์ ์ถ๋ ฅ (IO) ์ดํดํ๊ธฐ
์ข์ถฉ์ฐ๋ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ์ผ๊ธฐ๐ง 2024. 11. 9. 16:27
Java์์ ํ์ผ ์
์ถ๋ ฅ์ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ถ ํ์ผ์ ์ ์ฅํ๊ฑฐ๋ ์ฝ์ด๋ค์ด๊ธฐ ์ํด ํ์์ ์ธ ๊ธฐ๋ฅ์
๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ์์์ฑ์ ๊ตฌํํ ์ ์์ด ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์
์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฒ ํฌ์คํธ์์๋ ํ์ผ ์
์ถ๋ ฅ์ ๊ธฐ๋ณธ ๊ฐ๋
๊ณผ ์์ฃผ ์ฐ์ด๋ ํด๋์ค๋ค, ๊ทธ๋ฆฌ๊ณ ์ฝ๋ ์์ ๋ฅผ ํตํด ํ์ผ ์
์ถ๋ ฅ์ ๊ฐ๋จํ ์์๋ณด๊ฒ ์ต๋๋ค.
1. ํ์ผ ์ ์ถ๋ ฅ ๊ธฐ๋ณธ ๊ฐ๋
Java์ ์
์ถ๋ ฅ์ ์คํธ๋ฆผ(Stream) ๊ฐ๋
์ ํตํด ์ด๋ฃจ์ด์ง๋๋ค. ์คํธ๋ฆผ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํธ ๋จ์๋ก ์ ์กํ๋ ํ๋ฆ์ผ๋ก, Java๋ ์ด๋ฅผ ํตํด ํ์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ๋ ์์
์ ์ํํฉ๋๋ค.
์
์ถ๋ ฅ์๋ ํฌ๊ฒ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค
- ๋ฐ์ดํธ ์คํธ๋ฆผ: InputStream, OutputStream์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํธ(byte) ๋จ์๋ก ์ฝ๊ณ ์๋๋ค. ์ฃผ๋ก ์ด๋ฏธ์ง, ๋น๋์ค ๋ฑ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ๋ค๋ฃฐ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
- ๋ฌธ์ ์คํธ๋ฆผ: Reader, Writer๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๋ฌธ์๋ฅผ ๋ฌธ์(char) ๋จ์๋ก ์ฒ๋ฆฌํฉ๋๋ค. ํ ์คํธ ํ์ผ์ ๋ค๋ฃฐ ๋ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค.
2. ์์ฃผ ์ฌ์ฉํ๋ ํด๋์ค์ ์์
(1) File ํด๋์ค
File ํด๋์ค๋ ํ์ผ ๋๋ ๋๋ ํ ๋ฆฌ์ ์์ฑ, ์ญ์ , ์ ๋ณด ์กฐํ๋ฅผ ์ํ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๋ค๋ฃฐ ๋ ์ฃผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
import java.io.File;
public class FileExample {
public static void main(String[] args) {
File file = new File("example.txt");
// ํ์ผ ์กด์ฌ ์ฌ๋ถ ํ์ธ
if (file.exists()) {
System.out.println("ํ์ผ์ด ์ด๋ฏธ ์กด์ฌํฉ๋๋ค.");
} else {
try {
file.createNewFile();
System.out.println("์ ํ์ผ์ด ์์ฑ๋์์ต๋๋ค.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
(2) FileWriter์ FileReader (๋ฌธ์ ์คํธ๋ฆผ)
FileWriter์ FileReader๋ ํ
์คํธ ํ์ผ์ ๋ค๋ฃฐ ๋ ์ ์ฉํฉ๋๋ค. ๋ฌธ์๋ฅผ ์
์ถ๋ ฅํ๋ ์คํธ๋ฆผ์ด๋ฏ๋ก ์ผ๋ฐ ํ
์คํธ ํ์ผ์ ์ ํฉํฉ๋๋ค.
- FileWriter: ํ์ผ์ ๋ฌธ์์ด์ ์ธ ๋ ์ฌ์ฉํฉ๋๋ค.
- FileReader: ํ์ผ์์ ๋ฌธ์์ด์ ์ฝ์ ๋ ์ฌ์ฉํฉ๋๋ค.
import java.io.FileWriter;
import java.io.FileReader;
import java.io.IOException;
public class FileWriterReaderExample {
public static void main(String[] args) {
// ํ์ผ ์ฐ๊ธฐ
try (FileWriter writer = new FileWriter("example.txt")) {
writer.write("์๋
ํ์ธ์, Java ํ์ผ ์
์ถ๋ ฅ ์์ ์
๋๋ค.");
System.out.println("ํ
์คํธ ํ์ผ์ ๋ฐ์ดํฐ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์์ฑ๋์์ต๋๋ค.");
} catch (IOException e) {
e.printStackTrace();
}
// ํ์ผ ์ฝ๊ธฐ
try (FileReader reader = new FileReader("example.txt")) {
int data;
while ((data = reader.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
(3) BufferedWriter์ BufferedReader (๋ฌธ์ ๋ฒํผ ์คํธ๋ฆผ)
๋ฒํผ๋ฅผ ์ฌ์ฉํ์ฌ ํจ์จ์ ์ผ๋ก ํ์ผ์ ์ฒ๋ฆฌํ๊ณ ์ถ์ ๋ BufferedWriter์ BufferedReader๋ฅผ ์ฌ์ฉํฉ๋๋ค. ํนํ ํฐ ํ์ผ์ ์ฝ๊ฑฐ๋ ์ธ ๋ ์ฑ๋ฅ์ด ๊ฐ์ ๋ฉ๋๋ค.
import java.io.BufferedWriter;
import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.IOException;
public class BufferedWriterReaderExample {
public static void main(String[] args) {
// BufferedWriter๋ฅผ ์ฌ์ฉํ ํ์ผ ์ฐ๊ธฐ
try (BufferedWriter writer = new BufferedWriter(new FileWriter("example.txt"))) {
writer.write("๋ฒํผ๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ ํ์ผ์ ์ฐ๋ ์์ ์
๋๋ค.");
writer.newLine(); // ์ค ๋ฐ๊ฟ
writer.write("์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค.");
System.out.println("๋ฒํผ๋ฅผ ์ฌ์ฉํ ํ์ผ ์ฐ๊ธฐ ์๋ฃ.");
} catch (IOException e) {
e.printStackTrace();
}
// BufferedReader๋ฅผ ์ฌ์ฉํ ํ์ผ ์ฝ๊ธฐ
try (BufferedReader reader = new BufferedReader(new FileReader("example.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
(4) FileOutputStream๊ณผ FileInputStream (๋ฐ์ดํธ ์คํธ๋ฆผ)
๋ฐ์ดํธ ์คํธ๋ฆผ์ ์ด๋ฏธ์ง, ์ค๋์ค ๋ฑ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ์ฒ๋ฆฌํ ๋ ์ ์ฉํฉ๋๋ค. FileOutputStream๊ณผ FileInputStream์ ํตํด ๋ฐ์ดํธ ๋จ์๋ก ํ์ผ์ ๋ค๋ฃฐ ์ ์์ต๋๋ค.
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class FileOutputStreamInputStreamExample {
public static void main(String[] args) {
// ๋ฐ์ดํธ ๋ฐ์ดํฐ ํ์ผ ์ฐ๊ธฐ
try (FileOutputStream out = new FileOutputStream("example.dat")) {
out.write(65); // 'A'์ ASCII ์ฝ๋
out.write(66); // 'B'์ ASCII ์ฝ๋
System.out.println("๋ฐ์ดํธ ๋ฐ์ดํฐ๊ฐ ํ์ผ์ ๊ธฐ๋ก๋์์ต๋๋ค.");
} catch (IOException e) {
e.printStackTrace();
}
// ๋ฐ์ดํธ ๋ฐ์ดํฐ ํ์ผ ์ฝ๊ธฐ
try (FileInputStream in = new FileInputStream("example.dat")) {
int data;
while ((data = in.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
3. ๋ง๋ฌด๋ฆฌ ๋ฐ ์ ๋ฆฌ
Java์ ํ์ผ ์
์ถ๋ ฅ ๊ธฐ๋ฅ์ ํตํด ๋ค์ํ ํ์ผ ํ์์ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. FileWriter์ FileReader๋ฅผ ์ฌ์ฉํ์ฌ ํ
์คํธ ํ์ผ์ ๋ค๋ฃจ๊ฑฐ๋, FileOutputStream๊ณผ FileInputStream์ผ๋ก ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค. ๋ํ, BufferedReader์ BufferedWriter๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
Java ์
์ถ๋ ฅ์ ๋ฐ์ดํฐ ์์์ฑ์ ์ํ ํต์ฌ์ ์ธ ๊ธฐ๋ฅ์ด๋ฏ๋ก ์์ ๋ฅผ ์ง์ ์คํํด ๋ณด๋ฉด์ ์ดํดํด ๋ณด์ธ์
'๐ป Java > ใ คJava(Basic)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ๋์์ธ ํจํด (3) | 2024.11.14 |
---|---|
[Java] ์ง๋ ฌํ(Serialization)๋? (2) | 2024.11.12 |
[Java] ์ธํฐํ์ด์ค๋? (0) | 2024.11.10 |
[Java] ์์ผํต์ ์ ๊ธฐ์ด(+์ฑํ ๐ง) (0) | 2024.11.07 |