본문 바로가기
국비/JAVA

문자 기반 (보조)Stream

by haheaven 2021. 9. 2.

 

 

 

<문자 기반 입출력 스트림>

 

1.  FileWriter

1. 문자기반의 출력 스트림

2. 문자를 보낼 때 사용한다.

    1) 통신 : 상대방에게 문자를 보낼 때 

    2) 파일 : 텍스트 파일을 만들 때 

3. 출력 메소드

      write()

 4. 출력 단위 

     int(한글자를 실어나를 때), char[](여러 글자를 실어나를 때) , String(여러 글자를 실어나를 때)   

 

2.  FileReader

 1. 문자기반의 입력 스트림

 2. 문자를 읽을 때 사용

       1) 통신 : 상대방이 보낸 문자를 읽을 때 

       2) 파일 : 텍스트 파일을 읽을 때 

3. 입력메소드  

     read() 

 4. 입력 단위 

     int(한 개 읽을 때), char[] (여러개 읽을 때)

* int사용하는 경우 End of File(EOF)일 때 -1을 출력해야하는데 그러기 위해서 4byte가 필요하고   char는 2byte이기 때문에 이를 해결하기 위해 int로 함 )

 

 

예제(self)

import java.io.FileWriter;
import java.io.IOException;

public class ex1_fileWriter {
	public static void main(String[] args) {	
		try(FileWriter fw = new FileWriter("text3.txt")){
			
			int a ='a';
			char[] cbuf = {'a','b','c','d','e'};
			String str = "filewriter test";
			
			fw.write(a);
			fw.write('\n');
			fw.write(cbuf);
			fw.write('\n');
			fw.write(str);
			
			System.out.println("FileWriter 성공 ");
			
		} catch(IOException e) {
			e.printStackTrace();
		}
	}
}




import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class ex2_fileReader {

	public static void main(String[] args) {
		
		try(FileReader fr = new FileReader("text3.txt")){
	    	while(true) {
			int ch = fr.read();
		    if(ch == -1) {
		    	System.out.println("\ntext3.txt 읽기 성공");
		    	break;
				}
		    
		    System.out.print((char)ch);
	    	}
		}catch(FileNotFoundException e) {
			e.printStackTrace();
		}catch(IOException e) {
			e.printStackTrace();
		}
	}
}

 

 

 

 

<문자 기반 입출력 보조스트림>

1. BufferedWriter/BufferedReader 클래스 

                                   

   1. 문자 기반의 출력/입력 보조 스트림이다.

   2. FileWriter / FileReader 클래스와 같은 메인스트림과 함께 사용한다. 

   3. 내부 버퍼를 이용해서 동작 속도를 향상시킨다. 

 

 

예제(self)

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class ex1_char_BufferedWriter {

	public static void main(String[] args) {
		
		try(BufferedWriter bw = new BufferedWriter(new FileWriter("text4.txt"))){
		
			bw.write("자바화이팅");
			bw.write("\n공부는 꾸준히!\n");
			System.out.println("text4.txt 성공");
			
		}catch(IOException e) {
			e.printStackTrace();
		}
	}
}






import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

public class ex2_char_BufferedReader {

	public static void main(String[] args) {
		
		try(BufferedReader br = new BufferedReader(new FileReader("text4.txt"))){
			
			StringBuilder sb = new StringBuilder();
			char[] cbuf = new char[10];
			int readCount = 0;
			while ( (readCount = br.read(cbuf)) != -1) {
				sb.append(cbuf, 0, readCount);
			}
			
				System.out.println(sb);
				System.out.println("BufferdReader 성공");
			
		}catch(FileNotFoundException e) {
			e.printStackTrace();
		}catch(IOException e) {
			e.printStackTrace();
		}
	}
}

'국비 > JAVA' 카테고리의 다른 글

바이트 기반 (보조)Stream  (0) 2021.09.02
컬렉션 프레임워크  (0) 2021.09.01
LOMBOK  (0) 2021.09.01
상속_추상클래스와 인터페이스  (0) 2021.08.30
메서드,반복문, 조건문을 이용한 자판기만들기  (0) 2021.08.29

댓글