[Java 기능] 문자 단위 입출력 스트림

2022. 2. 17. 11:15·Java & Kotlin
목차
  1. Reader
  2. 예제 코드
  3. Writer
  4.  
  5. 예제 코드

Reader

  • 문자 단위 입력 스트림의 최상위 추상 클래스
  • 많은 추상 메서드가 선언되어 있고, 이를 하위 스트림에서 상속받아 구현
  • 주요 하위 클래스
스트림 클래스 설명
FileReader 파일에서 문자 단위로 자료를 읽음
InputStreamReader 바이트 단위로 읽은 자료를 문자로 변환해주는 보조 스트림
BufferedReader 문자로 읽을 때 배열을 제공하여 한꺼번에 읽을 수 있는 기능을 제공하는 보조 스트림

 

  • 주요 메서드
메서드 설명
int read() 파일로부터 한 문자를 읽음. 읽은 문자 반환
int read(char[] buf) 파일로부터 buf 배열에 문자를 읽음
int read(byte b[], int off, int len) 파일로부터 buf 배열의 off 위치로부터 len 개수만큼의 문자를 읽음
void close() 입력 스트림과 연결된 대상 리소스를 닫음

 

예제 코드

FileReaderTest.java
  • "안녕하세요" 라는 한글 문자열을 읽어들임
  • FileInputStream을 생성해서 파일을 읽을 경우 바이트 단위로 읽기 때문에 2바이트로 저장되는 한글은 깨짐 
package ch15;

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

public class FileReaderTest {

	public static void main(String[] args) {
		
//		try (FileInputStream fis = new FileInputStream("reader.txt")){ // 한글일 경우 깨짐
		try (FileReader fr = new FileReader("reader.txt")) {
			
			int i;
			
			while((i = fr.read()) != -1) {
				System.out.print((char)i);
			}
			
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

}

 


 

Writer

  • 문자 단위 출력 스트림의 최상위 추상 클래스
  • 많은 추상 메서드가 선언되어 있고, 이를 하위 스트림에서 상속받아 구현
  • 주요 하위 클래스
    스트림 클래스 설명
    FileWriter 파일에서 문자 단위로 자료를 씀
    OutputStreamWriter 바이트 단위의 자료를 문자로 변환해 출력해주는 보조 스트림
    BufferedWriter 문자로 쓸 때 배열을 제공하여 한꺼번에 쓸 수 있는 기능을 제공하는 보조 스트림

    • 주요 메서드
    메서드 설명
    int write(int c) 한 문자를 파일에 씀
    int write(char[] buff) 문자 배열 buf의 내용을 출력
    int write(char[] buf, int off, int len) 문자 배열 buf의 off 위치부터 len 개수만큼 문자 출력
    int write(String str) 문자열 str 출력
    int write(String str, int off, int len) 문자열 str의 off번째 문자로부터 len 개수만큼 출력
    void flush() 출력을 위해 자료가 머무르는 출력 버퍼를 강제로 비워 자료를 출력. 소켓 혹은 네트워크에서 가끔 사용
    void close() 출력 스트림과 연결된 대상 리소스를 닫음. 출력 버퍼 비워짐 (flush() 호출됨)

 

예제 코드

FileWriterTest.java
package ch15;

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

public class FileWriterTest {

	public static void main(String[] args) {
		
		try(FileWriter fw = new FileWriter("writer.txt")) {
			fw.write('A');	// A 출력
			char buf[] = {'B','C','D','E','F','G'};
			
			fw.write(buf);	// B~G 출력
			fw.write("안녕하세요");	// 문자열 출력
			fw.write(buf, 1, 2);	// C,D 출력
			fw.write("65");	// 숫자 출력
			
		} catch (IOException e) {
			
		}
	}

}
저작자표시 비영리 변경금지 (새창열림)

'Java & Kotlin' 카테고리의 다른 글

[Java 기능] 보조 스트림 클래스  (0) 2022.02.17
[Java 기능] 바이트 단위 입출력 스트림  (0) 2022.02.17
[Java 기능] 표준 입출력 스트림  (0) 2022.02.16
  1. Reader
  2. 예제 코드
  3. Writer
  4.  
  5. 예제 코드
'Java & Kotlin' 카테고리의 다른 글
  • [Java 기능] 직렬화
  • [Java 기능] 보조 스트림 클래스
  • [Java 기능] 바이트 단위 입출력 스트림
  • [Java 기능] 표준 입출력 스트림
Sue
Sue
개발 공부 로그
Sue's devlog개발 공부 로그
  • Sue
    Sue's devlog
    Sue
  • 전체
    오늘
    어제
    • 분류 전체보기 (122)
      • Algorithm (2)
      • WEB (8)
      • Java & Kotlin (83)
      • Spring (26)
      • Database (1)
      • Infra (0)
      • Git (1)
      • devlog (1)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Sue
[Java 기능] 문자 단위 입출력 스트림

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.