IO 스트림은 입출력 스트림을 말합니다. 데이터를 입력 받거나 출력하는 데 사용되는 연결 통로로, 데이터의 흐름을 나타내는 개념입니다. 입력 스트림은 데이터를 읽어오는 데 사용되고, 출력 스트림은 데이터를 쓰는 데 사용됩니다.
보조 스트림은 기본 스트림에 부가적인 기능을 제공하는 스트림입니다. 기본 스트림으로부터 데이터를 읽거나 기본 스트림으로 데이터를 쓰기 전에 보조 스트림이 추가로 연결되어 사용됩니다. 보조 스트림은 데이터의 변환, 버퍼링, 압축 등 다양한 작업을 수행할 수 있습니다.
문자 스트림과 바이트 스트림은 데이터의 단위가 다릅니다. 문자 스트림은 문자 단위로 데이터를 처리하는 스트림이며, 바이트 스트림은 바이트 단위로 데이터를 처리하는 스트림입니다. 문자 스트림은 텍스트 데이터를 다루기 위해 사용되며, 문자 인코딩과 관련된 작업을 수행할 수 있습니다. 바이트 스트림은 모든 종류의 데이터를 처리할 수 있지만, 문자 인코딩과 관련된 작업은 별도로 처리해주어야 합니다.
- buffered 보조스트림 달것:
===============
대상 파일: F:\a.java
사본 이름: F:\b.java
카피 되었습니다.
import java.io.*;
public class CopyProgram {
public static void main(String[] args) {
String sourceFile = "F:\\a.java";
String targetFile = "F:\\b.java";
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(sourceFile));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(targetFile))) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = bis.read(buffer)) != -1) {
bos.write(buffer, 0, bytesRead);
}
System.out.println("카피 되었습니다.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
try-with-resources는 자바 7부터 도입된 기능으로, 자원을 사용한 후 자동으로 자원을 해제해주는 구문입니다. try-with-resources 블록을 사용하면 finally 블록이나 close() 메서드를 명시적으로 호출하지 않아도 자원이 자동으로 닫히게 됩니다. 자원은 try-with-resources 블록 진입 시에 초기화되고, 블록을 벗어나면 자동으로 종료됩니다. 이를 통해 예외 발생 시에도 자원이 올바르게 해제되므로 코드가 간결해지고 실수를 줄일 수 있습니다.
import java.io.*;
public class TryWithResourcesExample {
public static void main(String[] args) {
String fileName = "파일경로.txt";
try (BufferedReader br = new BufferedReader(new FileReader(fileName))) {
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}