InputStream, OutputStream
Stream: 단방향으로만 데이터 전송 가능
File을 다룰 때: FileInputStream / FileOutputStream
프로세스를 다룰 때: PipedInputStream / PipedOutputStream
FileInputStream
//문자열 code가 입력된 파일 생성
//src 폴더 상위에 있어야 한다
echo code >> codestates.txt
FileInputStream fileInput = new FileInputStream("codestates.txt");
BufferedInputStream
보조 스트림: 성능 향상
버퍼: 바이트 배열, 여러 바이트를 저장하여 한 번에 많은 데이터를 입출력할 수 있도록 돕는 임시 저장 공간
FileOutputStream
같은 디렉토리 내에 code라는 문자열이 입력된 codestates.txt 파일이 생성된다
FileOutputStream fileOutput = new FileOutputStream("codestates.txt");
FileReader, FileWriter
File 입출력 스트림: 바이트 기반(입출력 단위 1byte), But char 타입은 2byte이다
이를 해소하기 위해 문자 데이터를 다루기 위한 문자 기반 스트림이 제공된다
1. 여러 종류의 인코딩(encoding)과 자바에서 사용하는 유니코드(UTF-16)간의 변환 자동 처리
2. InputStream - Reader, OutputStream - Writer로 대응
FileReader: 인코딩 → 유니코드
FileWriter: 유니코드 → 인코딩
FileReader
FileReader file = new FileReader(fileName);
BufferedReader
성능 개선
BufferedReader buffered = new BufferedReader(file);
FileWriter
FileWriter writer = new FileWriter(fileName);
String str = "written!";
File
File 클래스로 파일과 디렉토리에 접근 가능
File file = new File("../codestates.txt");
File file = new File("./", "newCodestates.txt");
file.createNewFile();
'Back-End > Java' 카테고리의 다른 글
StringifyJSON (0) | 2022.07.22 |
---|---|
스레드(Thread) (0) | 2022.07.19 |
스트림 (0) | 2022.07.17 |
람다 (0) | 2022.07.16 |
배열 문제 풀이 (0) | 2022.07.06 |
댓글