Java์ ํ์ผ ์
์ถ๋ ฅ(File I/O) ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ๋ค์ํ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ์ ํ์ตํ์์ต๋๋ค.
์ด๋ฒ ์ ๋ฆฌ์์๋ ๋ฐ์ดํธ ์คํธ๋ฆผ, ๋ฌธ์ ์คํธ๋ฆผ, ๊ฐ์ฒด ์ง๋ ฌํ ๋ฑ์ ์ค์ฌ์ผ๋ก ๊ฐ๋
๊ณผ ์์ ์ฝ๋๋ฅผ ์ ๋ฆฌํฉ๋๋ค.
InputStreamReader
, OutputStreamWriter
๋ฅผ ํ์ฉํ๋ฉด ๋ฐ์ดํธ ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์ ๋ฐ์ดํฐ๋ก ๋ณํ ๊ฐ๋ฅ.package Ch20;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
public class C01CharConvertStreamMain {
public static void main(String[] args) throws Exception {
InputStream in = new FileInputStream("c:\\IOTEST\\test.txt");
BufferedInputStream bin = new BufferedInputStream(in);
InputStreamReader rin = new InputStreamReader(bin);
while (true) {
int data = rin.read();
if (data == -1)
break;
System.out.print((char) data);
}
rin.close();
}
}
Hello, Java!
BufferedReader
๋ฅผ ์ด์ฉํ ํ์ผ ์ฝ๊ธฐBufferedReader
๋ฅผ ํ์ฉํ๋ฉด ํ์ผ์ ํ ์ค ๋จ์๋ก ์ฝ์ ์ ์์ (readLine()
๋ฉ์๋ ์ฌ์ฉ).package Ch20;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.Reader;
public class C02ReadLineMain {
public static void main(String[] args) throws Exception {
Reader in = new FileReader("c:\\IOTEST\\test2.txt");
BufferedReader bin = new BufferedReader(in);
while (true) {
String data = bin.readLine();
if (data == null)
break;
System.out.println(data);
}
bin.close();
}
}
test2.txt
์ ๋ด์ฉ์ด ์๋์ ๊ฐ์ ๊ฒฝ์ฐ)HELLO
HELLO
HELLO
DataInputStream
, DataOutputStream
)DataOutputStream
, DataInputStream
์ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์
์ ํ์ผ์ ์ ์ฅ ๋ฐ ์ฝ๊ธฐ ๊ฐ๋ฅ.package Ch20;
import java.io.DataInputStream;
import java.io.FileInputStream;
public class C03DataInoutStreamMain {
public static void main(String[] args) throws Exception {
FileInputStream in = new FileInputStream("c:\\IOTEST\\test3.txt");
DataInputStream din = new DataInputStream(in);
String name = din.readUTF();
double score = din.readDouble();
int value = din.readInt();
System.out.println("์ด๋ฆ: " + name);
System.out.println("์ ์: " + score);
System.out.println("์ซ์: " + value);
din.close();
}
}
test3.txt
์์ ๊ฐ์ฒด ๋ณต์)์ด๋ฆ: ํ๊ธธ๋
์ ์: 95.5
์ซ์: 100
ObjectOutputStream
, ObjectInputStream
)Serializable
์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด์ผ ํจ.package Ch20;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.Date;
class Board implements Serializable {
private static final long serialVersionUID = 1L;
private int bno;
private String title;
private String content;
private String writer;
private Date date;
public Board(int bno, String title, String content, String writer, Date date) {
this.bno = bno;
this.title = title;
this.content = content;
this.writer = writer;
this.date = date;
}
@Override
public String toString() {
return "Board [bno=" + bno + ", title=" + title + ", content=" + content +
", writer=" + writer + ", date=" + date + "]";
}
}
public class C04ObjectStreamMain {
public static void main(String[] args) throws Exception {
FileOutputStream out = new FileOutputStream("c:\\tmp_io\\board.db");
ObjectOutputStream oout = new ObjectOutputStream(out);
oout.writeObject(new Board(1, "์ ๋ชฉ1", "๋ด์ฉ1", "ํ๊ธธ๋", new Date()));
oout.writeObject(new Board(2, "์ ๋ชฉ2", "๋ด์ฉ2", "๋จ๊ธธ๋", new Date()));
oout.flush();
oout.close();
System.out.println("๊ฐ์ฒด๊ฐ ํ์ผ์ ์ ์ฅ๋์์ต๋๋ค.");
}
}
package Ch20;
import java.io.FileInputStream;
import java.io.ObjectInputStream;
public class C04ObjectStreamRead {
public static void main(String[] args) throws Exception {
FileInputStream in = new FileInputStream("c:\\tmp_io\\board.db");
ObjectInputStream oin = new ObjectInputStream(in);
Board board1 = (Board) oin.readObject();
Board board2 = (Board) oin.readObject();
System.out.println(board1);
System.out.println(board2);
oin.close();
}
}
board.db
์์ ๊ฐ์ฒด ๋ณต์)Board [bno=1, title=์ ๋ชฉ1, content=๋ด์ฉ1, writer=ํ๊ธธ๋, date=Mon Mar 17 12:34:56 KST 2025]
Board [bno=2, title=์ ๋ชฉ2, content=๋ด์ฉ2, writer=๋จ๊ธธ๋, date=Mon Mar 17 12:34:56 KST 2025]
์คํธ๋ฆผ ์ข ๋ฅ | ์ฌ์ฉ ๋ชฉ์ | ์ฃผ์ ํด๋์ค |
---|---|---|
๋ฌธ์ ๋ณํ ์คํธ๋ฆผ | ๋ฐ์ดํธ ๋ฐ์ดํฐ๋ฅผ ๋ฌธ์๋ก ๋ณํ | InputStreamReader , OutputStreamWriter |
๋ผ์ธ ๋จ์ ์ฝ๊ธฐ | ํ ์ค์ฉ ์ฝ๊ธฐ | BufferedReader (readLine() ) |
๊ธฐ๋ณธ ๋ฐ์ดํฐ ํ์ ์ ์ถ๋ ฅ | int, double ๋ฑ์ ๊ฐ์ ํ์ผ์ ์ ์ฅ | DataOutputStream , DataInputStream |
๊ฐ์ฒด ์ง๋ ฌํ | ๊ฐ์ฒด๋ฅผ ํ์ผ์ ์ ์ฅ ๋ฐ ๋ณต์ | ObjectOutputStream , ObjectInputStream |