- [Java] 80. 바이트 기반의 파일 입력 스트림2024년 05월 14일
- Song hyun
- 작성자
- 2024.05.14.:09
728x90반응형[Java] 80. 바이트 기반의 파일 입력 스트림
1. 파일 입력 스트림이란?
2. 파일 입력 스트림의 작동 방식
1. 파일 입력 스트림이란?
(1) 기반 스트림(Base Stream) : 데이터 소스와 직접 연결되는 스트림으로, 실제 데이터 읽기나
-바이트 기반 스트림
-문자 기반 스트림
(2) 보조 스트림(Filter Stream)
-버퍼링
-데이터 변환
-객체 직렬화
-문자 인코딩
*기반 스트림과 보조 스트림은 종속적인 관계이다.
2. 파일 입력 스트림의 작동 방식
(1)
(2)
(3)
package io.file.ch01; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; public class MyFileInputStream { public static void main(String[] args) { // 외부에 있는 파일 데이터를 읽으려면 input이라는 행동 필요 FileInputStream in = null; try { in = new FileInputStream("a.txt"); // 1단계 //int readData = in.read(); // 2단계 //System.out.print((char)in.read()); //System.out.print((char)in.read()); //System.out.print((char)in.read()); // 3단계 // 읽을 데이터가 더이상 없다면 -1을 반환한다. int readData; while((readData = in.read())!=-1) { System.out.println((char)readData); } // 4단계 FileInputStream(기반 스트림) 대상에 접근해서 // 한 바이트씩 읽는 기능을 가진다. // 1byte: 127~ -128 정수값 : a-->97, A-->65 // 대-->정수값 얼마일까? } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
package io.file.ch01; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; public class MyBufferedInputStream { public static void main(String[] args) { // 보조 스트림의 사용 -> 반드시 기반 스트림이 필요하다. FileInputStream fin = null; BufferedInputStream bfin = null; try { // 기반 스트림 fin = new FileInputStream("a.txt"); // 보조 스트림(기반 스트림) bfin = new BufferedInputStream(fin); int data; while((data = bfin.read()) != -1) { System.out.println((char)data); } } catch (Exception e) { // 리소스 자원 정리 // 열었던 자원의 순서를 반대로 닫아주자. if(bfin!=null) { try { bfin.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } if(fin != null) { try { fin.close(); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } } } } }
728x90반응형'Java > 자바 Stream' 카테고리의 다른 글
[Java] 83. 파일 Copy 예제: 기반 스트림에 확장을 붙여 더욱 빠르게 연산시켜보자. (0) 2024.05.17 [Java] 82. 파일 Copy(바이트 기반 입/출력) (0) 2024.05.16 [Java] 81. 파일 출력 스트림 (바이트) (0) 2024.05.16 [Java] 79. 표준 입출력 (0) 2024.05.14 [Java] 78. 자바 I/O (0) 2024.05.14 다음글이전글이전 글이 없습니다.댓글
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)