자바 1.0 과 자바 1.1 의 IO 류 비교
표 02자바 1.0 과 자바 1.1 의 IO 장식 기 비교 표
자바 IO 시스템 을 기본 클래스 와 인 테 리 어 로 구분 하 는 이 유 는 기본 클래스 는 주로 파일,문자열 등 다양한 종류 로 나 뉘 는데 인 테 리 어 는'Decorator 모드'('4 Decorator 모드 참조)를 구현 하기 위 한 것 이기 때문이다.3 자바 1.0 IO 시스템 은 자바 1.0 과 자바 1.1 의 IO 시스템 의 원리 와 사용 방법 이 모두 비슷 하기 때 문 이 라 고 소개 한다.따라서 자바 1.0 의 IO 시스템 에 대해 설명 한다.3.1 입력 흐름 InputStream 은 바이트 입력 흐름 의 모든 종류의 초 클래스 로 주로 다음 과 같은 몇 가지 자주 사용 하 는 하위 클래스 를 포함한다.(01)ByteArray InputStream 은 바이트 배열 을 바이트 배열 의 입력 흐름 으로 사용 합 니 다.(02)StringBufferInputStream 은 문자열 입력 흐름 으로 문자열 을 사용 합 니 다.시간 이 지 났 습 니 다.사용 을 권장 하지 않 습 니 다.(03)FileInputStream 은 파일 이나 FileDescriptor 를 파일 입력 흐름 으로 사용 합 니 다.이 입력 흐름 을 만 들 때 전달 하 는 매개 변 수 는'파일 이름'(String 형식),'File 대상'또는'FileDescriptor 대상'(즉 표준 입력 흐름,출력 흐름,오류 흐름 의 핸들 일 수 있 음)일 수 있 습 니 다.(04)PipedInputString 은 파이프 출력 흐름 을 기록 할 모든 데이터 바 이 트 를 제공 합 니 다.이 입력 흐름 을 만 들 때 해당 하 는 파이프 출력 순환 을 지정 할 수 있 습 니 다.이렇게 하면 해당 하 는 파이프 의 입력 흐름 을 파이프 출력 흐름 에 연결 하 는 것 을 의미한다.(05)FilterInputStream 은 InputStream 과 직접 계승 되 며 주로 Decorator 모드 를 실현 하 는 데 사 용 됩 니 다(이것 은 뒤에서 설명 합 니 다).FilterInputStream 은 주로 두 개의 파생 클래스 인'DataInputStream'과'BufferedInputStream'이 있다.DataInputStream 은 byte,char,int 등 기본 형식 과 String 을 읽 는 다양한 인 터 페 이 스 를 제공 합 니 다.Buffered InputStream 은 버퍼 기능 을 제공 합 니 다.3.2 출력 흐름 OutputStream 은 바이트 출력 흐름 의 모든 종류의 초 클래스 로 주로 다음 과 같은 몇 가지 자주 사용 하 는 하위 클래스 를 포함한다.(01)ByteArray OutputStream 바이트 배열 의 출력 흐름,그 중의 데 이 터 는 byte 배열 에 기록 되 었 습 니 다.버퍼 는 데이터 가 계속 기록 되면 서 자동 으로 증가 합 니 다.toByteArray()와 toString()을 사용 하여 데 이 터 를 가 져 올 수 있 습 니 다.(02)FileOutputStream 파일 출력 흐름 은 데 이 터 를 File 또는 FileDescriptor 에 기록 하 는 출력 흐름 입 니 다. 파일 이 사용 가능 하거나 생 성 될 수 있 는 지 여 부 는 기본 플랫폼 에 달 려 있 습 니 다.특히 일부 플랫폼 에 서 는 한 번 에 하나의 FileOutputStream(또는 다른 파일 쓰기 대상)만 파일 을 열 어 기록 할 수 있 습 니 다.이 경우 관련 파일 이 열 렸 다 면 이러한 구조 방법 은 실 패 했 습 니 다.(03)Piped OutputString 은 파이프 출력 흐름 을 파이프 입력 흐름 에 연결 하여 통신 파 이 프 를 만 들 수 있 습 니 다.파이프 출력 흐름 은 파이프 의 송신 단 이다.일반적으로 데 이 터 는 한 스 레 드 에서 Piped OutputStream 대상 을 기록 하고 연 결 된 Piped InputStream 에서 읽 습 니 다. 이 두 대상 에 게 하나의 스 레 드 를 사용 하 는 것 을 권장 하지 않 습 니 다.왜냐하면 이 스 레 드 가 잠 길 수 있 기 때 문 입 니 다.연 결 된 파이프 입력 흐름 에서 데이터 바 이 트 를 읽 고 있 지만 이 스 레 드 가 더 이상 활동 상태 가 아니라면 이 파 이 프 는 파 괴 된 상태 로 간 주 됩 니 다.(04)FilterOutputStream 은 OutputStream 과 직접 계승 하여 Decorator 모드 를 실현 하 는 데 사 용 됩 니 다(이것 은 뒤에서 설명 합 니 다).FilterOutputStream 은 주로 두 개의 파생 클래스 인'DataOutputStream'과'BufferedOutputStream'이 있다.DataOutput Stream 은 byte,char,int 등 기본 형식 과 String 을 기록 하 는 다양한 인 터 페 이 스 를 제공 합 니 다.Buffered Output Stream 은 버퍼 기능 을 제공 합 니 다. 4 Decorator 모드 Decorator,장식 모드,Wrapper 라 고도 부른다.그것 의 주요 기능 은 동적 으로 하나의 기능 을 확장 하 는 데 있다.자바 IO 시스템 은'파일 흐름','문자 직렬 흐름','바이트 흐름','버퍼 흐름'등 을 포함한다.입력 흐름 과 버퍼 흐름 같은 다양한 데이터 흐름 기능 이 필요 하 다 면.상속 방식 을 채택 하면 수량 이 너무 많다.이 문 제 를 해결 하기 위해 Decorator 모델 은 동적 확장 을 실현 했다.즉,실행 할 때 동적 으로'장식'과 같은 기능 을 제공 하 는 것 이다.예 를 들 어:InputStream input=newBufferedInputStream(new FileInputStream("test.txt"));이것 은 바로 FileInputStream 을 BufferedInputStream 으로 장식 하여 버퍼 기능 을 가지 게 하 는 것 이다.5 JAVA IO 예
package com.skywang;
import java.io.*;
public class IOTest{
publicstaticvoidmain(String[] args) throwsIOException {
try {
File f=newFile("d:123.txt");
OutputStream out =
new BufferedOutputStream(
new FileOutputStream(f));
String str="helloskywang!";
byte[]b=str.getBytes();
for(int i = 0; i < b.length; i++) {
out.write(b[i]);
}
out.close();
}catch (FileNotFoundException e){
e.printStackTrace();
}catch (SecurityException e){
e.printStackTrace();
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.