io 류
4842 단어 데이터 구조
2. 흐름 의 분류 흐름 은 데 이 터 를 처리 하 는 단위 에 따라 두 가지 로 나 눌 수 있 습 니 다. 바이트 흐름 과 문자 흐름 입 니 다. (메모리 에 비해)
입력 클래스 출력 흐름 클래스 바이트 흐름 클래스 InputStream Output Stream 문자 흐름 클래스 리더 Writer
상기 네 개의 I / O 흐름 류 는 모두 추상 류 이 므 로 직접 사용 할 수 없다.
흐름 구조
1、InputStream
FileInputStream: 파일 시스템 의 한 파일 에서 입력 바 이 트 를 가 져 옵 니 다.어떤 파일 을 사용 할 수 있 는 지 는 호스트 환경 에 달 려 있다.
그림 데이터 와 같은 원본 바이트 흐름 을 읽 는 데 사용 합 니 다.문자 흐름 을 읽 으 려 면 FileReader 를 사용 하 는 것 을 고려 하 십시오.
FilterInputStream: 다른 입력 흐름 을 포함 합 니 다. 이 흐름 을 기본 데이터 원본 으로 사용 합 니 다. 데 이 터 를 직접 전송 하거나 추가 기능 을 제공 할 수 있 습 니 다.
클래스 자 체 는 입력 흐름 을 포함 하 는 InputStream 에 모든 요청 을 전달 하 는 모든 방법 을 간단하게 다시 쓸 뿐이다.
이러한 하위 클래스 는 이러한 방법 중의 일부 방법 을 다시 쓸 수 있 고 추가 적 인 방법 과 필드 도 제공 할 수 있다.BufferedInputStream: 다른 입력 흐름 에 버퍼 입력 과 mark 와 reset 방법 을 지원 하 는 기능 을 추가 합 니 다.창설 중
BufferedInputStream 시 내부 버퍼 배열 을 만 듭 니 다.흐 르 는 바 이 트 를 읽 거나 건 너 뛸 때
필요 에 따라 포 함 된 입력 흐름 에서 이 내부 버퍼 를 다시 채 우 고 한 번 에 여러 바이트 를 채 웁 니 다.mark 조작 기록 입력
스 트림 의 한 점, reset 작업 은 포 함 된 입력 스 트림 에서 새 바이트 를 가 져 오기 전에 마지막 으로 다시 읽 습 니 다.
mark 작업 후 읽 은 모든 바이트 입 니 다.
2.OutputStream
FileOutputStream: 파일 출력 흐름 은 데 이 터 를 쓰기
File
또는 FileDescriptor
의 출력 흐름 입 니 다.파일 을 사용 할 수 있 는 지 여부창설 은 기초 플랫폼 에 달 려 있다.특히 일부 플랫폼 에 서 는 한 번 에 하나의 FileOutputStream (또는 다른 파일 쓰기 쌍 만 허용 합 니 다.
) 파일 을 열 어 기록 합 니 다.이러한 상황 에서 관련 된 파일 이 열 렸 다 면 이러한 구조 방법 은 실 종 될 것 입 니 다.
지다
FileOutputStream
이미지 데이터 와 같은 원본 바이트 의 흐름 을 기록 하 는 데 사 용 됩 니 다.문자 흐름 을 쓰 려 면 고려 하 십시오.쓰다
FilterOutputStream: 출력 흐름 을 걸 러 내 는 모든 종류의 초 클래스 입 니 다.클래스 자 체 는 모든 요청 을 포함 하 는 출력 흐름 에 전달 하 는 것 을 간단하게 다시 쓸 뿐 입 니 다.
FileWriter
의 모든 방법.- BufferedOutputStream: 버퍼 의 출력 흐름 을 실현 합 니 다.이러한 출력 흐름 을 설정 하면 프로그램 은 각 바이트 를 바 텀 출력 흐름 에 기록 할 수 있 습 니 다.
바이트 마다 바 텀 시스템 을 호출 할 필요 가 없습니다.
3.Reader
Buffered Reader: 문자 입력 흐름 에서 텍스트 를 읽 고 각 문 자 를 버퍼 링 합 니 다.일반적으로 Reader 가 하 는 모든 읽 기 요청 은 바 텀 문 자 를 가 져 옵 니 다.
바이트 흐름 에 대한 읽 기 요청 이 있 습 니 다.따라서 모든 read () 작업 을 Buffered Reader 로 포장 하 는 것 이 비용 이 많이 들 수 있 습 니 다.
높 은 Reader (예 를 들 어 FileReader 와 InputStreamReader).예컨대 BufferedReader in = new BufferedReader(new FileReader("foo.in"));
InputStreamReader: 바이트 흐름 을 문자 흐름 으로 변환 합 니 다.매번 InputStreamReader 의 read () 방법 을 호출 할 때마다 밑 에서
층 입력 흐름 은 하나 이상 의 바이트 를 읽 습 니 다.바이트 에서 문자 로 의 효과 적 인 변환 을 사용 하려 면 바 텀 스 트림 에서 더 많은 것 을 미리 읽 을 수 있 습 니 다.
현재 읽 기 작업 에 필요 한 바 이 트 를 초과 하도록 바이트 입 니 다.최고 효율 에 도달 하기 위해 서 는
Buffered Reader 에 InputStreamReader 를 포장 합 니 다.예 를 들 면: BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); ---FileReader: 문자 파일 을 읽 는 편리 한 클래스 입 니 다.이러한 구조 방법 은 기본 문자 인 코딩 과 기본 바이트 버퍼 크기 가 모두 적당 하 다 고 가정 합 니 다.... 에서 비롯 되다
이 값 을 정 하면 먼저 FileInputStream 에 InputStreamReader 를 구성 할 수 있 습 니 다.FileReader 는 글 자 를 읽 는 데 사 용 됩 니 다.
。원본 바이트 흐름 을 읽 으 려 면 FileInputStream 을 사용 하 는 것 을 고려 하 십시오.
StringReader: 원본 은 문자열 의 문자 흐름 입 니 다.구조 방법 StringReader (String s) 에서 새 문자열 reader 를 만 듭 니 다.
4.Writer
Buffered Writer: 텍스트 를 문자 출력 흐름 에 기록 하고 각 문 자 를 버퍼 링 하여 단일 문자, 배열, 문자열 의 효율 적 인 기록 을 제공 합 니 다.
Output Stream Writer: 바이트 흐름 을 문자 흐름 으로 변환 합 니 다.
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));---FileWriter: 문자 파일 을 쓰 는 편리 한 클래스 입 니 다.이러한 구조 방법 은 기본 문자 인 코딩 과 기본 바이트 버퍼 크기 를 모두 받 아들 일 수 있다 고 가정 합 니 다.... 하려 하 다
이 값 을 스스로 지정 하면 FileOutputStream 에 OutputStream Writer 를 만 들 수 있 습 니 다.
파일 을 사용 할 수 있 는 지, 만 들 수 있 는 지 여 부 는 바 텀 플랫폼 에 달 려 있 습 니 다.특히 일부 플랫폼 에 서 는 한 번 에 하나의 FileWriter (또는 그) 만 허용 합 니 다.
그 는 파일 을 열 어 기록 했다.이러한 상황 에서 관련 된 파일 이 열 렸 다 면 이러한 구조 방법
실패 할 것 이다.
OutputStream
문자 흐름 을 기록 하 는 데 사 용 됩 니 다.원본 바이트 흐름 을 쓰 려 면 사용 을 고려 하 십시오 FileWriter
.이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.