[Java] I/O - 파일 내용읽기/InputStream

고동이의 IT·2021년 11월 15일
0

Java

목록 보기
25/37
post-thumbnail

InputStream: 바이트 기반 입력 스트림의 최상위 클래스. 파일을 읽어올 때 사용한다.

  • FileInputStream, BufferdInputStream, DataInputStream클래스는 모두 InputStream 클래스를 상속받는다.
  • 여기서 중요한 부분은 FileInputStream 를 사용했으면 close() 메소드를 통해 닫아주는 것이다.
  • 이 외에 다른 FileReader , BufferReader 를 통해서도 파일을 읽어 올 수 있다..

read(): 입력 스트림(InputStream같은거?)으로부터 1byte를 읽고 int(4byte)타입으로 리턴.더 이상 입력 스트림으로부터 바이트를 읽을 수 없다면 -1리턴.

  • 데이터를 다읽고 읽을 데이터가 없으면 -1 반환하는거로 이해해도될까

방법1) 읽어올 파일 정보를 문자열로 직접 기술

  • 파일 내용을 읽기 위해서는 FileInputStream객체가 필요하다.
public class FileIOTest01 {
	public static void main(String[] args) {
			try {
        
	FileInputStream fin = new FileInputStream("d:/d_Other/test.txt");

	int c; // 읽어온 데이터가 저장될 변수
			
			while( (c = fin.read()) != -1 ){
				// 읽어온 데이터를 화면에 출력하기
				System.out.print( (char)c );
			}
			fin.close(); // 작업이 완료되면 스트림 닫기
			
		} catch (IOException e) {
			// TODO: handle exception
		}
	}
}

방법2) 읽어올 파일을 File객체로 만들어서 사용

public class FileIOTest01 {
	public static void main(String[] args) {
		try {
        // 방법2: 읽어올 파일을 File객체로 만들어서 사용하는 방법
			File file = new File("d:/d_Other/test.txt");
			FileInputStream fin = new FileInputStream(file);	
			
			int c; // 읽어온 데이터가 저장될 변수
			
			while( (c = fin.read()) != -1 ){
				// 읽어온 데이터를 화면에 출력하기
				System.out.print( (char)c );
			}
			fin.close(); // 작업이 완료되면 스트림 닫기
			
		} catch (IOException e) {
			// TODO: handle exception
		}
	}
}
profile
삐약..뺙뺙

0개의 댓글