개발일지
[Android] read/write 본문
InputStream
→ The abstract class is the superclass of all classes representing an input stream of bytes
val inputStream: InputStream = file.inputStream()
Stream (데이터가 전송되는 통로)
→ 개별 바이트나 문자열인 데이터의 원천
BufferedReader
→ 일부 데이터를 미리 읽어 저장하고 있으므로 읽기 작업이 매우 빨라짐
- 문자를 미리 버퍼에 저장하고 있기 때문에 읽기 속도가 훨씬 빠르다
- 파일이나 스트림에 직접 BufferedReader 를 붙이고 이로부터 데이터를 읽어들일 수 있음
- use 메소드는 실행 후 스트림을 자동으로 닫아주는 것을 보장함.
val inputStream7: InputStream = File("/Users/kang/dev/Android11Blog.txt").inputStream()
val inputString7 = inputStream7.bufferedReader(Charsets.ISO_8859_1).use { it.readText() }
- readLine()
- readText()
======================
1. FileReader
- 문자 데이터를 파일로부터 읽는 클래스.
- 파일 이름을 생성자 파라미터로 사용해서 FileReader 객체를 생성한다.
FileReader reader = new FileReader("poem.txt");
(생성자 안에서 현재 디렉토리의 poem.txt 파일을 연다.)
1) read 메소드 : 파라미터를 받지 않는 가장 간단한 메소드. 파일로부터 한 개의 문자를 읽어서 리턴한다.
date = reader.read();
- read 메소드는 파일에 있는 문자 하나를 읽어 리턴한다.
- 처음 호출했을 때 첫번째 문자를 읽어 리턴, 2번째 호출시엔 2번째 문자 리턴, 3번째 호출시엔 3번째 문자 리턴하는 방식.
- 리턴 타입이 char가 아니라 int인 것에 주의. 더이상 읽을 문자가 없으면 -1 리턴.
while (true) {
int data = reder.read(); // 데이터를 읽어서
if (data < 0) break; // 마이너스 값이면 반복을 중단
char ch = (char) data; // 아니면 char 타입으로 캐스트
// 데이터 처리 로직이 들어가는 부분
}
2) reder.close(); 파일을 닫는 메소드
'Android' 카테고리의 다른 글
[Android] Scoped Storage (0) | 2021.06.29 |
---|---|
[Android][Kotlin] SharedPreferences (0) | 2021.06.29 |
[Android][Kotlin] SwipeRefreshLayout (0) | 2021.06.29 |
[Android] ViewBinding (0) | 2021.06.29 |
[Android] AOS11 이후 앱 권한설정 (0) | 2021.06.29 |