바이트 스트림이랑 똑같은데 사용하는 객체 생성이 다르다.
package org.example;
import java.io.FileReader;
import java.io.FileWriter;
public class Main4 {
public static void main(String[] args) {
try(FileWriter fw = new FileWriter("bb.txt")) {
for (char i ='A';i<'Z'+1;i++){
fw.write(i);
}
}catch (Exception e){
e.printStackTrace();
}
try(FileReader fr = new FileReader("bb.txt")) {
int ch;
while(true){
ch = fr.read();
if (ch ==-1){
break;
}
System.out.print((char)ch);
}
}catch (Exception e){
e.printStackTrace();
}
}
}
A부터 Z 까지 출력하게 된다.
● Buffer write 와 Buffer read
package org.example;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
public class Main5 {
public static void main(String[] args) {
try(BufferedWriter bw = new BufferedWriter(new FileWriter("ccc.txt"))) {
bw.write("공부를 하기 위해서 돈이 필요한건 아니다.");
bw.write("맞아요");
bw.newLine();
bw.write("하하하");
}catch (Exception e){
e.printStackTrace();
}
try(BufferedReader br = new BufferedReader(new FileReader("ccc.txt"))) {
while (true) {
String txt = br.readLine();
if (txt == null)
break;
System.out.println(txt);
}
}catch (Exception e){
e.printStackTrace();
}
}
}
write 한 문자가 출력이 되고
txt 안에 null 이면 break 해라
txt를 출력해봐라 이런 구문이다.
●ObjectInputStream 과 ObjectOutputStream
package org.example;
import java.io.*;
class Sbox implements Serializable {
private String name;
private int age;
public Sbox(String name, int age) {
this.name = name;
this.age = age;
}
@Override
public String toString() {
return "Sbox{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
public class Main6 {
public static void main(String[] args) {
Sbox sbox = new Sbox("감자", 20);
Sbox sbox1 = new Sbox("감자", 20);
try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("obj.bin"))) {
oos.writeObject(sbox);
oos.writeObject(sbox1);
} catch (Exception e) {
e.printStackTrace();
}
try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.bin"))) {
Sbox obj1 = (Sbox) ois.readObject();
System.out.println(obj1);
Sbox obj2 = (Sbox) ois.readObject();
System.out.println(obj2);
} catch (Exception e) {
e.printStackTrace();
}
}
}
형변환 을 해줘야 한다.
'java' 카테고리의 다른 글
Thread 이해 와 생성 (0) | 2024.02.21 |
---|---|
파일 시스템(NIO) (0) | 2024.02.20 |
입출력 필터 스트림 (0) | 2024.02.19 |
I/O 스트림에 대한 이해 (0) | 2024.02.19 |
시각과 날짜 코드 (0) | 2024.02.16 |