2014. 12. 26. 01:12
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

InputStream 클래스에서 파생된 클래스


FileInputStream

ZipInputStream

DataInputStream

BufferedInputStream


각 클래스에서 데이터를 읽을 때는 기본적으로 read()메소드를 사용해 1byte씩 데이터를 읽는다






package readerData;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

public class InputSt {
    public static void main(String[] args) throws IOException{
       
        InputStream in =new FileInputStream("endend.txt");
       
        while (true) {
            int data=in.read();    // read()는 1byte씩 가져온다
            System.out.println(data);
           
            if (data==-1) {     // 파일의 끝이면 -1을 반환 한다
                break;
            }
        }
    }
}


FileInputStream() 파라미터로 파일의 주소를 넣어 주면 된다. 상대경로를 이용하려면 현재 프로젝트폴더에 파일이 있어야 한다.

다른 위치의 파일을 읽어오고 싶으면 절대경로를 넣어주면 된다.


주의할 점은 FileInputStream은 한글을 제대로 인식을 못한다. 그래서 한글로 된 파일을 읽어오면 알 수 없는 형태의 글자로 표시가 된다.

버퍼를 이용하는 방법도 있지만 Scanner클래스를 이용해서 한글 파일을 읽어 올 수도 있다.



---------------------------------------



Scanner 클래스를 이용해 파일읽기



package readerData;

import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Scanner;

public class scanInput {
    public static void main(String[] args){
        InputStream in=null;
       
        try {
            in =new FileInputStream("endend.txt");
           
            Scanner s=new Scanner(in);           

    // Scanner 클래스의 파라미터로 객체 생성된 in 을 넘겨준다.


            while (s.hasNext()) {
                String str=s.nextLine();     // 한줄 씩 읽어온다
                System.out.println(str);
            }
        } catch (Exception e) {
            System.out.println(e);
        }
    }
}







'Java' 카테고리의 다른 글

ArrayList  (0) 2014.12.26
OutputStream  (0) 2014.12.26
DataInputStream / DataOutputStream  (0) 2014.12.25
Finding IP using the domain name  (0) 2014.12.25
Multi Chatting  (0) 2014.12.25
Posted by af334