함수형 인터페이스
: 추상 메서드가 한개만 존재하는 인터페이스
람다식
1) 람다식 문법
(매개변수) -> {실행할 문장;}
: 내부 또는 외부의 데이터와 프로그램 간의 데이터를 주고 받는 것
1) 파일 입출력 개념
(1) 스트림(stream)
데이터를 주고받는 통로
(데이터는 바이트(byte) 형태로 전송된다)
(2) 버퍼(buffer)
데이터를 전송할 때 데이터를 임시로 전송하는 공간 (임시 저장공간)
(3) 스트림과 버퍼
데이터를 바이트 단위로 바로 전송하지 않고 버퍼라는 임시 저장공간에 저장을 하여 일정 데이터가 쌓였을 때 한 번에 전송하면 전송 속도가 빠름
출력 스트림
=======>
java 파일(test.txt)
<=======
입력 스트림
(4) File 클래스
2) 데이터 전송 방식
(1) 기본 스트림 : 실제 데이터를 주고받는 통로
OutputStream/InputStream
: 데이터를 바이트 단위로 전송한다
Writer/Reader
: 데이터를 2바이트씩(문자 단위) 전송한다
(2) 보조 스트림 : 기본 스트림을 보조하여 기능을 향상시킨다
Buffered
BufferOutputStream, BufferedWrite 등등
데이터를 버퍼라는 임시 저장공간 안에 저장한다
3) 파일 입출력에서 사용하는 클래스
(1) 파일 출력
: 새로운 파일을 작성하거나 기존 파일 내용에 추가
BufferedWriter : 버퍼를 사용한 출력 클래스
FileWriter : 전달한 경로의 파일을 출력하기 위한 목적으로 스트림을 열어주는 역할을 하는 클래스
(2) 파일 입력
: 외부 데이터를 프로그램 안으로 읽어오는 것
BufferedReader : 버퍼를 사용한 입력 클래스
FileReader : 전달한 경로의 파일을 입력하기 위한 목적으로 스트림을 열어주는 역할을 하는 클래스
1) 스트림의 특징
(1) 스트림은 데이터 소스를 변경하지 않는다
(2) 스트림은 일회용
(3) 스트림은 작업을 내부 반복으로 처리한다
(4) 데이터 타입마다 다룰 수 있는 스트림이 존재한다
2) 스트림 연산
ex) stream.sorted().limit(5).forEach(System.out::println);
중간연산 최종연산