부트캠프

Java - 파일 입출력(I/O)

hunm719 2023. 1. 9. 19:38

자바에서는 입출력을 다루기 위한 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