InputStream - FileInputStream

이진석·2022년 8월 23일
1
post-thumbnail

20220823

한 번에 끝내는 Java/Spring 웹 개발 마스터


1) FileInputStreamTest1

package ch14;

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

public class FileInputStreamTest1 {

	public static void main(String[] args) {

		FileInputStream fis = null;
		try {
			fis = new FileInputStream("input.txt");
			System.out.println((char) fis.read());
			System.out.println((char) fis.read());
			System.out.println((char) fis.read());

		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			try {
				fis.close();
			} catch (IOException e) {

				e.printStackTrace();
			} catch (Exception e2) {
				System.out.println(e2);
			}
		}
		System.out.println("end");
	}
}

2) FileInputStreamTest2

package ch14;

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

public class FileInputStreamTest2 {

	public static void main(String[] args) {
		
		try(FileInputStream fis = new FileInputStream("input.txt")) {
			
			int i;
			while( (i = fis.read()) != -1) {
				System.out.print((char)i);
			}
		} catch (IOException e) {
			System.out.println(e);
		}
	}
}

3) FileInputStreamTest3

package ch14;

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

public class FileInputStreamTest3 {

	public static void main(String[] args) {
		 		
		try (FileInputStream fis = new FileInputStream("input2.txt")){
			
			byte[] bs = new byte[10];
			int i;
			while ( (i = fis.read(bs)) != -1){
				/*for(byte b : bs){
					System.out.print((char)b);
				}*/
				for(int k= 0; k<i; k++){
					System.out.print((char)bs[k]);
				}
				System.out.println(": " +i + "바이트 읽음" );
			}
			
			/* while ( (i = fis.read(bs, 1, 9)) != -1){
				for(int k= 0; k<i; k++){
					System.out.print((char)bs[k]);
				}
				System.out.println(": " +i + "바이트 읽음" );
			}*/
			 
		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println("end");
	}
}

  • InputStream이란 바이트 단위 입력 스트림 최상위 클래스이다.
  • 그 중, 하위클래스 중 하나인 FileInputStream을 이용해서 바이트 단위로 자료를 읽는 문제들을 풀어보았다.

4) 관련 주요 메소드

  • int read()
    : 입력 스트림으로부터 한 바이트의 자료를 읽습니다. 읽은 자료의 바이트 수를 반환합니다.

  • int read(byte b[])
    : 입력 스트림으로 부터 b[] 크기의 자료를 b[]에 읽습니다. 읽은 자료의 바이트 수를 반환합니다.

  • int read(byte b[], int off, int len)
    : 입력 스트림으로 부터 b[] 크기의 자료를 b[]의 off변수 위치부터 저장하며 len 만큼 읽습니다.
    : 읽은 자료의 바이트 수를 반환합니다.

  • void close()
    : 입력 스트림과 연결된 대상 리소스를 닫습니다.

profile
혼자서 코딩 공부하는 전공생 초보 백엔드 개발자 / https://github.com/leejinseok0614

0개의 댓글