티스토리 뷰

언어/JAVA

[JAVA] 스트림(stream)

Sime 2016. 9. 26. 09:48

스트림은 순서가 있는 데이터의 연속적인 흐름 이다.

예를 들어 입출력을 물의 흐름처럼 간주하는 것이다.



입출력의 단위에 따라 분류


입출력 스트림

 바이트 스트림

 입력 바이트 스트림

 출력 바이트 스트림

 문자 스트림

 입력 문자 스트림

 출력 문자  



스트림

 데이터 싱크 스트림 

데이터를 소스에서 읽거나 목적지에 기록

데이터 처리 스트림

들어오는 데이터를 가공하여 내보냄 



기본적으로 많이 쓰는 스트림에는 FileInputStream, FileOutputStream 이 있다.



<예제>



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
 
public class Test01 {
 
    public static void main(String[] args) throws IOException { //외부 동작시 예외처리를 해줘야 함
        FileInputStream in = null;
        FileOutputStream out = null;
        
        try {
            int c;
            out = new FileOutputStream("data.txt",false); //생성자에는 목적지 파일에 대한 정보를 담아야함
            for(int i =0;i<10;i++)
                out.write(i);
            
            //파일의 경로에는 절대경로, 상대경로, 정규 경로가 있다.
            
            in = new FileInputStream("data.txt");
            while((c = in.read()) != -1){
                System.out.println(c+"   ");
            }
            
        } finally {
            try{
                if(in != null)
                    in.close(); //메모리 관리 등을 위해 스트림 사용 후 닫아 줘야함\
                
                if(out != null)
                    out.close();
            }catch (Exception e) {
                e.printStackTrace();
            }
        }
        
    }
 
}
 
cs


결과 :  

0   

1   

2   

3   

4   

5   

6   

7   

8   

9   



 !) 메모리 관리 등을 위해 스트림 사용 후 닫아 줘야함

반응형

'언어 > JAVA' 카테고리의 다른 글

[JAVA] 직렬화(Serializable)  (0) 2016.09.26
[JAVA] 데이터 형식 범위  (0) 2016.09.26
[JAVA] 정규식  (0) 2016.09.22
[JAVA] synchronized  (0) 2016.09.22
[JAVA] 스레드(Thread)  (0) 2016.09.22
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함