2013년 11월 10일 일요일

자바 스트림, 입출력

JAVA InputStream, FileInputStream, OutputStream, FileOutputStream
 
1. InputStream(바이트 입력을 위한 최상위 추상클래스)
 
abstract int read()
-1 : 더 이상 자료가 없으면
int read(byte[] buf, int start, int len) : 읽은 바이트 수 반환
-1 : 더 이상 자료가 없으면
int skip(long n)
int available() : blocking 되지 않고 읽어들일 수 있는 바이트 수
close()

2. OutputStream(바이트 출력을 위한 취상위 추상클래스)
 
abstract write(int b)
write(byte[] buf, int start, int len)
flush()
내부 버퍼를 반영
close()
 
3. FileInputStream  : File에서 한 바이트씩 읽어들임
 
FileInputStream(String name) throws FileNotFoundException
FileInputStream(File file) throws FileNotFoundException

4. FileOutputStream : 파일에 한 바이트씩 씀
 
FileOutputStream(String name, boolean append) throws FileNotFoundException
FileOutputStream(File file) throws IOException
 
[파일을 한 바이트씩 읽어서 복사하는 예제]
 
package onj;
import java.io.*;
class FileTest
{
    public static void main( String[] args ) throws IOException
    {
     //메인 함수의 인자로 복사할파일과 그파일을 복사해서 새로 만들 파일명을 준다.
        InputStream in = new FileInputStream(args[0]);
        OutputStream out = new FileOutputStream(args[1]);
       
        int count = 0;
        //더 이상 읽을 것이 없을 때는 -1 리턴
        for( int b; (b = in.read()) != -1; )
        {
             ++count;
             out.write( b );
        }
       
        System.err.println(count + " 바이트 복사");
        in.close();
        out.close();
    }
}
 

댓글 없음:

댓글 쓰기