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 |