본문 바로가기
java

문자 스트림

by improve 2024. 2. 19.

바이트 스트림이랑 똑같은데 사용하는 객체 생성이 다르다.

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