다양한 타입의 확장자를 가진 파일을 읽기 위해 사용하는 클래스이다.
해당 클래스를 이용하면 파일에서 바이트 단위로 입력이 가능해 다른 입력 클래스들과 연결해서 데이터를 가져올 수 있다.
InputStream을 상속받은 클래스이다. → 그래서 바이트 단위로 파일을 읽는다.
생성자
File file = new File(String path);
FileInputStream fis = new FileInputStream(File file);
FileInputStream fis = new FileInputStream(String path);
메서드
메모장----------------------------------------------------------------------
Hello World!
Hi!
---------------------------------------------------------------------------
FileInputStream fis = new FileInputStream("src/main/resources/test.txt");
System.out.println(fis.read()) // H 반환
System.out.println(fis.read()) // e 반환
FileInputStream fis = new FileInputStream("src/main/resources/test.txt");
byte[] buf = new byte[fis.available()]; // 모든 바이트의 수 크기의 배열 생성
fis.read(buf); // 16 반환
FileInputStream fis = new FileInputStream("src/main/resources/test.txt");
byte[] buf = new byte[fis.available()];
fis.read(buf,0,buf.length); // 처음부터 끝까지 읽기, 16반환
추가
System.out.print(new String(buf,0,buf.length));
//출력
Hello World!
Hi!
BufferedReader bf = new BufferedReader(new FileReader("src/main/resources/test.md");
String line = "";
while((line = bf.readLine()) != null){
System.out.println(line);
}
//출력 -> 한 줄씩 읽어와 2번만에 출력한다.
Hello World!
Hi!
package store;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
public class Application {
public static void main(String[] args) throws IOException {
// TODO: 프로그램 구현
String filePath = "src/main/resources/test.md";
//FileInputStream .read()를 사용하여 한 글자씩 출력
FileInputStream fis = new FileInputStream(filePath);
int data = 0;
while((data = fis.read()) != -1) {
System.out.println((char)data);
}
//FileInputStream .read(byte[] b, int off, int len)을 이용하여 전부 가져와 한 번에 처리
fis = new FileInputStream(filePath);
byte[] buf = new byte[fis.available()];
while((data = fis.read(buf,0,buf.length) )!= -1) { //fis.read(buf)와 같다.
System.out.println(new String(buf, 0, data));
}
fis.close();
//FileReader를 사용하여 문자 단위로 처리받아 사용한다.
BufferedReader bis = new BufferedReader(new FileReader(filePath));
String line = "";
while((line =bis.readLine()) != null){
System.out.println(line);
}
}
}