English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 튜토리얼에서는 예제를 통해 Java FileInputStream 및 메서드를 배웁니다.
java.io 패키지의 FileInputStream 클래스는 파일에서 데이터를 읽어 들이는 데 사용됩니다(바이트 단위로).
InputStream 추상 클래스를 상속합니다.
FileInputStream를 공부하기 전에 다음을 확인해야 합니다Java File(파일).
파일 입력 스트림을 생성하려면 먼저 java.io.FileInputStream 패키지를 가져오아야 합니다. 패키지를 가져온 후 Java에서 파일 입력 스트림을 생성할 수 있습니다.
1. 파일 경로 사용
FileInputStream input = new FileInputStream(stringPath);
이곳에서는 지정된 파일 경로에 연결되는 입력 스트림을 생성합니다.
2. 파일 객체 사용
FileInputStream input = new FileInputStream(File fileObject);
이곳에서는 fileObject으로 지정된 파일에 연결되는 입력 스트림을 생성합니다.
FileInputStream 클래스는 InputStream 클래스에서 등장하는 다양한 메서드를 구현합니다.
read() - 파일에서 하나의 바이트를 읽습니다
read(byte[] array) - 파일에서 바이트를 읽어 지정된 배열에 저장합니다
read(byte[] array, int start, int length) - 파일에서 length 개의 바이트를 읽어 start 위치에서 지정된 배열에 저장합니다
이름이input.txt의 파일이 포함된 내용이 있습니다.
This is a line of text inside the file.
이 파일을 FileInputStream을 사용하여 읽어보겠습니다.
import java.io.FileInputStream; public class Main { public static void main(String args[]) { try { FileInputStream input = new FileInputStream("input.txt"); System.out.println("파일 데이터: "); //첫 번째 바이트를 읽습니다 int i = input.read(); while(i != -1) { System.out.print((char)i); //파일에서 다음 바이트를 읽습니다: i = input.read(); } input.close(); } catch(Exception e) { e.getStackTrace(); } } }
출력 결과
파일 데이터: This is a line of text inside the file.
위 예제에서 input이라는 파일 입력 스트림을 생성했습니다. 입력 스트림은input.txt파일 링크.
FileInputStream input = new FileInputStream("input.txt");
파일에서 데이터를 읽기 위해 while 루프에서 read() 메서드를 사용했습니다.
사용 가능한 바이트 수를 얻으려면 available() 메서드를 사용할 수 있습니다. 예를 들어
import java.io.FileInputStream; public class Main { public static void main(String args[]) { try { //가정해 보면 input.txt 파일은 다음과 같은 텍스트를 포함하고 있습니다 //이는 파일中的一行 텍스트입니다. FileInputStream input = new FileInputStream("input.txt"); //사용 가능한 바이트 수를 반환합니다 System.out.println("시작时可用的 바이트 수: " + input.available()); //파일에서 읽습니다3바이트 input.read(); input.read(); input.read(); //사용 가능한 바이트 수를 반환합니다 System.out.println("끝났을 때 사용 가능한 바이트 수: " + input.available()); input.close(); } catch(Exception e) { e.getStackTrace(); } } }
출력 결과
시작时可用的 바이트 수: 39 끝났을 때 사용 가능한 바이트 수: 36
위 예제에서
우선 available() 메서드를 사용하여 파일 입력 스트림에서 사용 가능한 바이트 수를 확인했습니다.
그런 다음,我们已经使用read() 메서드3번째 파일 입력 스트림에서 읽습니다3바이트로 줄었습니다.
이제, 바이트를 읽은 후에 다시 사용 가능한 바이트 수를 확인했습니다. 이번에는 사용 가능한 바이트 수가3.
지정된 바이트 수를 버리고 건너뜁니다. 예를 들어
import java.io.FileInputStream; public class Main { public static void main(String args[]) { try { //가정해 보면 input.txt 파일은 다음과 같은 텍스트를 포함하고 있습니다 //이는 파일中的一行 텍스트입니다. FileInputStream input = new FileInputStream("input.txt"); //건너뜁니다5바이트 input.skip(5); System.out.println("입력 스트림을 건너뜁니다:5바이트: "); //첫 번째 바이트를 읽습니다 int i = input.read(); while(i != -1) { System.out.print((char) i); //파일에서 다음 바이트를 읽습니다: i = input.read(); } // close() 메서드 input.close(); } catch(Exception e) { e.getStackTrace(); } } }
출력 결과
입력 스트림 건너뛰기5바이트: 파일 내의 텍스트 행.
위의 예제에서 우리는 skip() 메서드를 사용하여 파일 입력 스트림에서 건너뛰었습니다.5바이트의 데이터. 따라서 텍스트를 표시하는 데이터는 입력 스트림에서 읽히지 않습니다.“This”바이트.
파일 입력 스트림을 닫기 위해 close() 메서드를 사용할 수 있습니다. close() 메서드가 호출되면, 더 이상 입력 스트림을 통해 데이터를 읽을 수 없습니다.
위의 모든 예제에서 우리는 파일 입력 스트림을 닫기 위해 close() 메서드를 사용했습니다.
메서드 | 콘텐츠 설명 |
---|---|
finalize() | close() 메서드가 호출되도록 보장 |
getChannel() | FileChannel과 입력 스트림을 연결된 객체를 반환 |
getFD() | 입력 스트림과 연결된 파일 디스크립터를 반환 |
mark() | 입력 스트림에서 읽은 데이터 위치를 마크 |
reset() | 컨트롤을 입력 스트림에 마크된 위치로 반환 |