FileInputStream 객체를 생성하여 읽기용으로 파일을 엽니다.
파일이 존재하지 않는 경우 FileInputStream(String filename) 생성자는 FileNotFoundException을 발생시킵니다.
FileNotFoundException은 IOException의 하위 클래스입니다.
파일을 읽으려면 바이트를 읽고 정수 값을 반환하는 read() 메서드를 사용하세요.
read()는 파일 끝에 도달하면 -1을 반환하고 오류 시 IOException을 발생시킵니다.
사용 후에는 시스템 리소스를 확보하기 위해 close() 메소드로 파일을 닫아야 합니다.
파일을 닫지 않으면 메모리 누수가 발생할 수 있습니다.
예제 프로그램에서는 read()를 사용하여 파일 내용을 표시하고 try/catch 블록을 사용하여 I/O 오류를 처리합니다.
참고: Java에서는 프로그램이 더 이상 사용하지 않는 메모리 리소스를 해제하지 않아 이러한 리소스를 불필요하게 점유하는 경우 메모리 누수가 발생합니다. 언어에는 참조되지 않은 객체에 대한 자동 가비지 수집 기능이 있지만 이 수집은 파일이나 네트워크 연결과 같은 외부 리소스를 직접 처리하지 않습니다. 파일을 닫지 않으면 시스템 리소스가 계속 사용 중이고 성능이 저하되며 오류 및 실패가 발생합니다(예: 다른 파일을 열려고 할 때).
이전 예에서는 파일 읽기를 위해 try 블록 이후 흐름을 닫습니다.
Java에서는 finally 블록 내에서 close()를 호출하는 대체 접근 방식을 허용합니다.
finally 블록을 사용하면 try 블록이 어떻게 끝나든 관계없이 파일이 닫힙니다.
이 접근 방식은 예외가 발생하더라도 파일이 닫히는 것을 보장합니다.
try 블록은 파일에 액세스하고 마지막으로 파일을 닫는 데만 사용됩니다.
finally 블록을 사용하면 I/O 예외가 발생하더라도 파일이 닫히지 않는다는 장점이 있습니다.
이 접근 방식은 소규모 프로그램에서는 중요하지 않지만 대규모 프로그램에서는 문제를 방지하는 데 필수적입니다.
finally를 사용하면 예상치 못한 예외가 발생할 경우 닫히지 않은 파일을 처리해야 하는 번거로움을 피할 수 있습니다.
파일 열기 및 파일 액세스를 단일 try 블록에 캡슐화하고 finally를 사용하여 닫는 것이 가장 좋습니다.
이러한 접근 방식은 코드를 단순화하고 리소스 릴리스를 보장할 수 있습니다.
fin은 null로 초기화되고 finally 블록에서는 fin이 null이 아닌 경우에만 파일이 닫힙니다.
이렇게 하면 파일을 열 때 예외가 발생하는 경우 close()가 호출되는 것을 방지할 수 있습니다.
FileNotFoundException은 IOException의 하위 클래스이므로 try/catch 시퀀스를 단순화할 수 있습니다.
IOException만 포착하면 FileNotFoundException을 별도로 포착할 필요가 없습니다.
이 경우 표준 예외 메시지에 오류가 설명되어 있습니다.
...
} catch(IOException 예외) {
System.out.println("I/O 오류: " ex);
} 드디어 {
...
위 내용은 파일에 항목 생성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!