입력(input)과 출력(output)에 대한 내용
바이트 기반 스트림은 바이트 단위로 데이터를 입출력하는 스트림. 문자 기반 스트림은 문자 단위로 데이터를 입출력하는 스트림. 네트워크 기반 스트림은 네트워크를 통해 데이터를 입출력하는 스트림. 파일 기반 스트림은 파일을 통해 데이터를 입출력하는 스트림
기본 스트림을 확장하는 스트림
기본 스트림을 상속하여 작성
- 문자 스트림은 문자 단위로 데이터를 입출력하고,
- 바이트 스트림은 바이트 단위로 데이터를 입출력
- 문자 스트림은 운영 체제의 문자 인코딩을 사용하여 데이터를 입출력
운영 체제의 문자 인코딩은 국가별로 다르기 때문에, 문자 스트림을 사용하여 파일을 입출력할 때는 운영 체제의 문자 인코딩을 고려해야 한다.
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class Copy {
public static void main(String[] args) throws FileNotFoundException, IOException {
String originalPath = "F:\a.java";
String copyPath = "F:\b.java";
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(originalPath));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(copyPath));
byte[] buffer = new byte[1024];
int length;
while ((length = bis.read(buffer)) != -1) {
bos.write(buffer, 0, length);
}
bis.close();
bos.close();
System.out.println("카피 되었습니다.");
}
}
try-with-resources를 사용하면, try 블록이 종료되면 fis 리소스가 자동으로 close. 따라서, fis 리소스를 명시적으로 close하지 않아도 된다
try-with-resources는 Java 7부터 도입된 문법으로, try 블록 내에서 사용되는 리소스를 자동으로 close하는 기능을 제공. try-with-resources를 사용하면 try 블록 내에서 사용되는 리소스를 명시적으로 close하지 않아도 되기 때문에, 코드의 가독성과 유지보수성을 향상시킬 수 있다.
try-with-resources를 사용하려면, try 블록의 선두에 using 키워드를 사용하고, 리소스를 선언해야 헌다. 예를 들어, 파일 리소스를 사용하려면 다음과 같이 try-with-resources를 사용할 수 있다.