[JAVA] 60. 파일I/O with Buffer

서회정's avatar
Feb 20, 2025
[JAVA] 60. 파일I/O with Buffer

1. InputStream

package ex18; import ex02.InputString; import java.io.IOException; import java.io.InputStream; public class Buff01 { public static void main(String[] args) { InputStream in = System.in; //read선 try { int r = in.read(); System.out.println(r); } catch (IOException e) { throw new RuntimeException(e); } } }

2. InputStreamReader

package ex18; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class Buff02 { public static void main(String[] args) { InputStream in = System.in; // 키보드부터 데이터를 받는 선을 가르키는 래퍼런스 변수 InputStreamReader rd = new InputStreamReader(in); char[] buf = new char[4]; //버퍼의 시작 try { rd.read(buf); // 키보드 입력 대기 for (int i = 0; i < buf.length; i++) { System.out.println(buf[i]); } } catch (IOException e) { throw new RuntimeException(e); } } }
notion image
 

3. BufferedReader

package ex18; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Scanner; public class Buff03 { public static void main(String[] args) { // InputStream in = System.in; // InputStreamReader rd = new InputStreamReader(in); // BufferedReader br = new BufferedReader(rd); // 내나 밑에랑 같은거라 볼 수 있음 //Scanner sc = new Scanner(System.in); // 한 번에 쓸 수 있음 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { String line = br.readLine(); // 아무말아무말아무말\n(enter) 여기서 끝남. } catch (IOException e) { throw new RuntimeException(e); } } }
 

4. BufferedWriter

package ex18; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStreamWriter; // 버퍼는 꽉 차야 전송된다. // 프로토콜 : \n (엔터) public class Buff04 { public static void main(String[] args) { BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); try { bw.write("안녕\n"); bw.flush(); //흘려주는것, 꽉차기 전에 전송하게함. } catch (IOException e) { throw new RuntimeException(e); } } }
 

5. PrintWriter

package ex18; import java.io.PrintWriter; import java.util.Scanner; public class Buff05 { public static void main(String[] args) { PrintWriter out = new PrintWriter(System.out, true); // autoFlush \n과 flush를 붙이지 않아도 전송 가능 out.println("Hello World"); Scanner sc = new Scanner(System.in); String s = sc.nextLine(); System.out.println(s); } }
Share article

clubnerdy