자바에서는 입출력을 다루기 위한 InputStream, OutputStream을 제공함.
스트림은 단방향으로만 데이터를 전송할 수 있기에, 입력과 출력을 동시에 처리하기 위해서는 각각의 스트림이 필요하고, 다루는 대상에 따라 종류가 나뉨.
가장 빈번하게 사용되는 FileInputStream과 FileOutputStream을 학습해보자.
1.FileInputStream : 파일로부터 바이트로 입력받아, 바이트 단위로 출력할 수 있는 클래스
2.FileOutputStream : 데이터를 파일에 바이트 스트림으로 저장하기 위해 사용하는 클래스
*각각 InputStream과 OutputStream의 자식클래스
위의 File 입출력 스트림은 바이트 기반 스트림(입출력 단위가 1byte)임.
하지만 Java에서 char타입은 2byte 이기 때문에 문자 기반 스트림을 따로 제공함.
문자 기반 스트림은 문자 데이터를 다룰 때 사용하고 일반적으로, 바이트 기반 스트림의 InputStream이 Reader로, OutputStream이 Writer로 대응됨.
3.FileReader : 인코딩을 유니코드로 변환
4.FileWriter : 유니코드를 인코딩으로 변환
+File클래스 훑어보기 : 자바에서는 File 클래스로 파일과 디렉토리에 접근할 수 있음
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import java.io.*;
public class FileExample {
public static void main(String args[]) throws IOException {
File file = new File("../codestates.txt");
System.out.println(file.getPath()); // 경로 나타내기
System.out.println(file.getParent()); // 상위 경로 문자열로 나타내기
System.out.println(file.getCanonicalPath()); // 현재 작업 중인 경로 모양 그대로
System.out.println(file.canWrite()); // 쓰기 기능
System.out.println(file.canRead()); // 읽기 기능
}
}
|
cs |
내용 및 이미지 출처 - code states
'부트캠프' 카테고리의 다른 글
자료구조/알고리즘 - 재귀 함수 (0) | 2023.01.12 |
---|---|
Java - Thread, JVM (0) | 2023.01.10 |
Java - Annotation, Lambda, Stream (0) | 2023.01.06 |
Java 컬렉션 프레임워크 (0) | 2023.01.04 |
Java 열거형, 제네릭, 예외 처리 (1) | 2023.01.04 |