CiRe
기반 스트림과 보조 스트림
CiRe
시레코드
CiRe
전체
오늘
어제
  • 분류 전체보기 (26)
    • Spring (2)
    • Language (5)
      • Java (5)
    • Amazon Cloud (8)
    • CS (9)
      • 네트워크 (4)
      • 운영체제 (2)
      • 자료구조 (0)
      • 데이터베이스 (3)
    • Style Sheet (0)
    • 디자인패턴 (2)
      • GOP (1)
      • OOP (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

hELLO · Designed By 정상우.
Language/Java

기반 스트림과 보조 스트림

2022. 11. 10. 17:10
목차
  1. 개요
  2. 스트림이란?
  3. 스트림의 구분
  4. 사용 예제
  5. 출처

개요

우리가 프로그램을 만들면서, 데이터를 파일로 저장하거나, 파일에서 데이터를 읽고 싶을 때가 있다. 이때 우리는 스트림(Stream)이라는 통로를 이용해 데이터를 읽고,쓸 수 있다.

스트림이란?

네트워크에서 데이터의 흐름이 물과 같다는 의미에서 유래된 단어로, 다양한 입출력 장치에 독립적으로 일관성 있는 입출력을 제공하는 방식을 말한다.

입출력 장치 : 모니터, 키보드, 파일 디스크, 메모리 네트워크

스트림의 구분

대상 기준으로 구분

스트림은 데이터의 흐름이므로, 한 방향으로 밖에 흐르지 못한다. 즉 입력과 출력 둘 다 다르는 스트림은 없다는 뜻이다.

입력 스트림 : 대상으로 부터 자료를 읽어 들이는 스트림

- FileInputStream, FileReader, BufferedInputStream, BufferedReader 등등

출력 스트림 : 대상으로 자료를 출력하는 스트림

- FileOutputStream, FileWriter, BufferedOutputStream, BufferedWriter 등등

기능 기준으로 구분

기반 스트림 : 대상에 직접 자료를 읽고 쓰는 기능의 스트림

- FileInputStream, FileOutputStream, FileReader, FileWriter 등등

보조 스트림 : 직접 읽고 쓰는 기능은 없이 추가적인 기능을 더해주는 스트림

- InputStreamReader, OutputStreamWriter, BufferedInputStream, BufferedOutputStream 등등

보조 스트림은 직접 읽고 쓰는 기능은 없으므로 항상 기반 스트림이나 또 다른 보조 스트림을 생성자 매개변수로 포함 함

public class System{
    public static PrintStream out;
    public static InputStream in;
}

(평소 우리가 편히 쓰는 System.out, System.in 도 입출력 스트림을 활요한 클래스이다!)

사용 예제

FileReader와 FileWriter

public class Example{
    File file = new File(파일 이름);

    if(!file.exists()) file.createNewFile(); 

    FileWriter fileWriter = new FileWriter(file);
    fw.write("Hellow, world!! \n);
    fw.close();

    FileReader fileReader = new FileReader(file, boolean 파일 이어 쓸지 말지 결정);
    while(ture){
        char[] buffer = new char[size];
        int ret = fr.read(buf);
        if(ret==-1) break;
        System.out.print(String.valueOf(buf));
    }
    fr.close();
}

 

 

BufferedWirter와 BufferedReader

public class Example{
 		File file=new File(파일 이름);
        if(!file.exists())  file.createNewFile();

        BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(파일 이름));

        bufferedWriter.write("Hello, world!");
        bufferedWriter.newLine();
        bufferedWriter.write("Hello, world!!");
        bufferedWriter.newLine();
        bufferedWriter.write("Hello, world!!!");
        bufferedWriter.newLine();
        bufferedWriter.fluse();
        bufferedWriter.close();

        BufferedReader bufferedReader=new BufferedReader(new FileReader(파일 이름));
        String line=null;
        while((line=bufferedReader.readLine())!=null)
            System.out.println(line);
        br.close();
}

출처

 

[무료] Do it! 자바 프로그래밍 입문 with 은종쌤 - 인프런 | 강의

비전공자, 문과생도 무릎을 ‘탁!’ 치며 이해하는 20년 경력 명강사의 자바 강의!, - 강의 소개 | 인프런...

www.inflearn.com

 

 

'Language > Java' 카테고리의 다른 글

[Java] Garbage Collection  (0) 2023.08.23
멀티 쓰레드를 사용할 때 주의점과 synchroized를 활용한 쓰레드 동기화  (0) 2023.04.08
스트림(Stream) 이란?  (0) 2022.11.12
문자열을 정수로 바꾸기  (0) 2022.11.12
  • 개요
  • 스트림이란?
  • 스트림의 구분
  • 사용 예제
  • 출처
'Language/Java' 카테고리의 다른 글
  • [Java] Garbage Collection
  • 멀티 쓰레드를 사용할 때 주의점과 synchroized를 활용한 쓰레드 동기화
  • 스트림(Stream) 이란?
  • 문자열을 정수로 바꾸기
CiRe
CiRe
공부한 것을 정리하기 위해 만든 블로그 입니다.
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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