sitelink1 | |
---|---|
sitelink2 | |
sitelink3 | |
sitelink4 | |
sitelink5 | |
sitelink6 |
http://www.ezslookingaround.com/blog/tech/?no=531
OutputStream / InputStream : 이들은 추상 클래스로서 바이트 스트림의 입출력을 위한...
: 사실 이게 더 이해하기 쉬울것이다.. 왜냐? InputStream / OutputStream 앞에 prefix를 붙이는것에 따라 구분되므로
더 간단한 형태이지... 편리하기는 Reader / Writer 가 어떤면에선 더 편할 수도 있다.
아무튼 OutputStream 등은.. 스트림바이트의 출력.. Binary data.. byte 단위의 이진데이터이다... (눈으로 확인못한다; )
아웃풋 인풋 의 의미는 아웃풋 류의 클래스는 모두 출력개념(파일출력..등..) 이고 인풋은.. 파일에서부터 입력받은.. 개념이다.
1. FileOutputStream / FileInputStream
: 파일에 바이트 스트림을 출력하고, 바이트 스트림 파일을 읽는 기능
파일로 아웃풋 하겠다... 파일에서 인풋하겠다..
참고로.. 이녀석들은 스트림단위라소 눈에 보이지 않는 문자다;;
지정한 화일명으로 ByteStreamFile을 생성하였습니다.
[yakmo@fedora java]$
2. DataOutputStream / DataInputStream (자바기본 데이터를 스트림으로 아웃풋하겠다! / 스트림을 입력받아 자바기본데이터형으로읽겠다)
: 자바의 기본 자료형 데이터를 바이트 스트림으로 출력하는 기능을 제공 ( character --> bin )
즉, 자바기본 데이터를 인풋 받아 스트림으로 아웃풋한다는 의미 (데이터를 스트림으로 아웃풋 하겠다!)
/ Input.. 은 반대로 스트림을 읽어서 자바의 기본자료형으로 입력받는 기능..( bin --> character )
이렇게하면 다양한 데이터 형태가 가능해진다!!!
3. BufferedOutputStream / BufferedInputStream
BufferedOutputStream(OutputStream outputStream [,int bufSize])
버퍼를 사용하여 스트림을 출력 한다.
BufferedInputStream(InputStream inputstream [,int bufSize])
버퍼를 사용하여 스트림을 입력한다.
*/

OutputStream / InputStream : 이들은 추상 클래스로서 바이트 스트림의 입출력을 위한...
|--- FileInputStream |-- BufferedInputStream
|---- InputStream ---|--- FilterInputStream ---|
| |--- ObjectInputStream |-- DataInputStream
|
Object --
|
| |--- FileOutputStream |-- BufferedOutputStream
|---- OutputStream---|--- FilterOutputStream---|-- DataOutputStream
|--- ObjectOutputStream |-- PrintStream
|---- InputStream ---|--- FilterInputStream ---|
| |--- ObjectInputStream |-- DataInputStream
|
Object --
|
| |--- FileOutputStream |-- BufferedOutputStream
|---- OutputStream---|--- FilterOutputStream---|-- DataOutputStream
|--- ObjectOutputStream |-- PrintStream
: 사실 이게 더 이해하기 쉬울것이다.. 왜냐? InputStream / OutputStream 앞에 prefix를 붙이는것에 따라 구분되므로
더 간단한 형태이지... 편리하기는 Reader / Writer 가 어떤면에선 더 편할 수도 있다.
아무튼 OutputStream 등은.. 스트림바이트의 출력.. Binary data.. byte 단위의 이진데이터이다... (눈으로 확인못한다; )
아웃풋 인풋 의 의미는 아웃풋 류의 클래스는 모두 출력개념(파일출력..등..) 이고 인풋은.. 파일에서부터 입력받은.. 개념이다.
1. FileOutputStream / FileInputStream
: 파일에 바이트 스트림을 출력하고, 바이트 스트림 파일을 읽는 기능
파일로 아웃풋 하겠다... 파일에서 인풋하겠다..
참고로.. 이녀석들은 스트림단위라소 눈에 보이지 않는 문자다;;
[yakmo@fedora java]$ java FileOutputStreamDemo 1111
0
1
2
3
4
0
1
2
3
4
지정한 화일명으로 ByteStreamFile을 생성하였습니다.
[yakmo@fedora java]$ cat 1111
[yakmo@fedora java]$ java FileInputStreamDemo 1111
01234지정한 파일로부터 바이트 스트림을 입력받아 화면에 출력하였습니다.
[yakmo@fedora java]$
[yakmo@fedora java]$ cat FileOutputStreamDemo.java
[yakmo@fedora java]$ java FileInputStreamDemo 1111
01234지정한 파일로부터 바이트 스트림을 입력받아 화면에 출력하였습니다.
[yakmo@fedora java]$
[yakmo@fedora java]$ cat FileOutputStreamDemo.java
·미리보기 | 소스복사·
- import java.io.*;
- class FileOutputStreamDemo {
- public static void main(String args[]) throws IOException {
- FileOutputStream fos = new FileOutputStream(args[0]);
- for(int i=0;i<5;i++) {
- fos.write(i); // write 는 byte or int ...
- System.out.println(i);
- }
- fos.close();
- System.out.println("지정한 화일명으로 ByteStreamFile을 생성하였습니다.");
- }
- }
[yakmo@fedora java]$ cat FileInputStreamDemo.java
·미리보기 | 소스복사·
- import java.io.*;
- class FileInputStreamDemo {
- public static void main(String args[]) throws IOException {
- FileInputStream fis = new FileInputStream(args[0]);
- int i;
- while( (i=fis.read() ) != -1) {
- System.out.print(i);
- }
- System.out.println("지정한 파일로부터 바이트 스트림을 입력받아 화면에 출력하였습니다.");
- fis.close();
- }
- }
2. DataOutputStream / DataInputStream (자바기본 데이터를 스트림으로 아웃풋하겠다! / 스트림을 입력받아 자바기본데이터형으로읽겠다)
: 자바의 기본 자료형 데이터를 바이트 스트림으로 출력하는 기능을 제공 ( character --> bin )
즉, 자바기본 데이터를 인풋 받아 스트림으로 아웃풋한다는 의미 (데이터를 스트림으로 아웃풋 하겠다!)
/ Input.. 은 반대로 스트림을 읽어서 자바의 기본자료형으로 입력받는 기능..( bin --> character )
이렇게하면 다양한 데이터 형태가 가능해진다!!!
[yakmo@fedora java]$ java DataOutputStreamDemo
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at DataOutputStreamDemo.main(DataOutputStreamDemo.java:5)
[yakmo@fedora java]$ java DataOutputStreamDemo dos
[yakmo@fedora java]$ java DataInputStreamDemo dos
false
127
김
1.7976931348623157E308
[yakmo@fedora java]$
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at DataOutputStreamDemo.main(DataOutputStreamDemo.java:5)
[yakmo@fedora java]$ java DataOutputStreamDemo dos
[yakmo@fedora java]$ java DataInputStreamDemo dos
false
127
김
1.7976931348623157E308
[yakmo@fedora java]$
·미리보기 | 소스복사·
- import java.io.*;
- class DataOutputStreamDemo {
- public static void main(String args[]) throws IOException {
- FileOutputStream fos = new FileOutputStream(args[0]); // 우선 bin 으로 파일을쓸 클래스 객체생성
- DataOutputStream dos = new DataOutputStream(fos); // 위의 객체에 자바의일반데이터를 바이너리형태로 고쳐서 넣을 dos 생성, 물론 fos.write(xx) 도 가능함.
- // 하지만 자바 기본데이터형으로 많은 종유의 지원이 가능하다.. write 는 byte or int 뿐이다.
- dos.writeBoolean(false);
- dos.writeByte(Byte.MAX_VALUE);
- dos.writeChar('김');
- dos.writeDouble(Double.MAX_VALUE);
- fos.close();
- }
- }
·미리보기 | 소스복사·
- import java.io.*;
- class DataInputStreamDemo {
- public static void main(String args[]) throws IOException {
- FileInputStream fis = new FileInputStream(args[0]); // bin 파일을 읽어들일 준비..
- DataInputStream dis = new DataInputStream(fis); // bin을 읽어서 자바 데이터형태로 받을 dis 생성.. 물론 여기서도
- // 바로 fis.read 할 수 있긴하지만 데이터형이...;
- System.out.println(dis.readBoolean());
- System.out.println(dis.readByte());
- System.out.println(dis.readChar());
- System.out.println(dis.readDouble());
- fis.close();
- }
- }
3. BufferedOutputStream / BufferedInputStream
BufferedOutputStream(OutputStream outputStream [,int bufSize])
버퍼를 사용하여 스트림을 출력 한다.
BufferedInputStream(InputStream inputstream [,int bufSize])
버퍼를 사용하여 스트림을 입력한다.
*/
[yakmo@fedora java]$ java BufferedOutputStreamDemo bos
버퍼를 사용하여 파일을 생성
[yakmo@fedora java]$ cat bos
[yakmo@fedora java]$ file bos
bos: raw G3 data, byte-padded
[yakmo@fedora java]$
[yakmo@fedora java]$ java BufferedInputStreamDemo bos
0
1
2
3
4
버퍼를 사용하여 파일로부터 입력
[yakmo@fedora java]$
버퍼를 사용하여 파일을 생성
[yakmo@fedora java]$ cat bos
[yakmo@fedora java]$ file bos
bos: raw G3 data, byte-padded
[yakmo@fedora java]$
[yakmo@fedora java]$ java BufferedInputStreamDemo bos
0
1
2
3
4
버퍼를 사용하여 파일로부터 입력
[yakmo@fedora java]$
·미리보기 | 소스복사·
- import java.io.*;
- class BufferedOutputStreamDemo {
- public static void main(String args[]) throws Exception { //IOException 해도 되고...
- FileOutputStream fos = new FileOutputStream(args[0]);
- BufferedOutputStream bos = new BufferedOutputStream(fos);
- for(int i=0;i<5;i++) {
- bos.write(i);
- }
- bos.close();
- System.out.println("버퍼를 사용하여 파일을 생성");
- }
- }
·미리보기 | 소스복사·
- import java.io.*;
- class BufferedInputStreamDemo {
- public static void main(String args[]) throws Exception {
- FileInputStream fis = new FileInputStream(args[0]);
- BufferedInputStream bis = new BufferedInputStream(fis);
- int i;
- while( (i=bis.read())!= -1 ) {
- System.out.println(i);
- }
- System.out.println("버퍼를 사용하여 파일로부터 입력");
- bis.close();
- }
- } MORE