자바의 입출력 스트림과 파일 처리
2023. 11. 11. 23:53ㆍ개발 문서/Java
728x90
반응형
자바에서의 입출력 스트림과 파일 처리는 파일이나 네트워크, 키보드, 모니터 등과의 데이터 흐름을 다루는 데 사용됩니다. 이를 통해 파일 읽기, 쓰기, 키보드로부터 입력 받기 등 다양한 입출력 작업을 수행할 수 있습니다.
1. 입출력 스트림 (Input/Output Stream):
자바에서의 입출력은 스트림을 기반으로 합니다. 스트림은 데이터의 흐름을 나타내는데, 입력 스트림은 데이터를 읽어오는 역할을 하고 출력 스트림은 데이터를 쓰는 역할을 합니다. 입출력은 바이트 스트림과 문자 스트림으로 나눌 수 있습니다.
바이트 스트림(Byte Streams):
InputStream
및OutputStream
클래스와 그 하위 클래스들을 사용합니다.
// 파일에서 바이트 읽기 try (InputStream input = new FileInputStream("example.txt")) { int data; while ((data = input.read()) != -1) { System.out.print((char) data); } } catch (IOException e) { e.printStackTrace(); } // 파일에 바이트 쓰기 try (OutputStream output = new FileOutputStream("output.txt")) { String data = "Hello, Java!"; output.write(data.getBytes()); } catch (IOException e) { e.printStackTrace(); }
문자 스트림(Character Streams):
Reader
및Writer
클래스와 그 하위 클래스들을 사용합니다.
// 파일에서 문자 읽기 try (Reader reader = new FileReader("example.txt")) { int data; while ((data = reader.read()) != -1) { System.out.print((char) data); } } catch (IOException e) { e.printStackTrace(); } // 파일에 문자 쓰기 try (Writer writer = new FileWriter("output.txt")) { String data = "Hello, Java!"; writer.write(data); } catch (IOException e) { e.printStackTrace(); }
2. Buffered 스트림:
BufferedInputStream
및 BufferedOutputStream
, BufferedReader
및 BufferedWriter
와 같은 클래스들은 입출력 성능을 향상시키기 위해 버퍼를 사용합니다.
// BufferedInputStream 및 BufferedOutputStream을 사용한 파일 복사
try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream("input.txt"));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("output.txt"))) {
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = bis.read(buffer)) != -1) {
bos.write(buffer, 0, bytesRead);
}
} catch (IOException e) {
e.printStackTrace();
}
3. 파일 처리:
자바에서 파일과 관련된 작업을 수행하기 위해 File
클래스를 사용할 수 있습니다.
파일 생성 및 삭제:
// 파일 생성 File file = new File("newFile.txt"); try { if (file.createNewFile()) { System.out.println("File created: " + file.getName()); } else { System.out.println("File already exists."); } } catch (IOException e) { e.printStackTrace(); } // 파일 삭제 if (file.delete()) { System.out.println("File deleted: " + file.getName()); } else { System.out.println("Failed to delete the file."); }
디렉토리 생성:
// 디렉토리 생성 File directory = new File("newDirectory"); if (directory.mkdir()) { System.out.println("Directory created: " + directory.getName()); } else { System.out.println("Failed to create the directory."); }
이러한 입출력 및 파일 처리 기능을 이용하여 다양한 작업을 수행할 수 있습니다. 입출력 스트림과 파일 처리는 자바 어플리케이션에서
'개발 문서 > Java' 카테고리의 다른 글
자바 8의 람다 표현식과 스트림 API (1) | 2023.11.11 |
---|---|
자바 디자인 패턴 소개 (0) | 2023.11.11 |
스레드와 동시성 프로그래밍 (0) | 2023.11.11 |
컬렉션 프레임워크: List, Set, Map 등 (0) | 2023.11.11 |
인터페이스와 추상 클래스의 활용 (0) | 2023.11.11 |