자바 프로 그래 밍 의 IO 흐름 자료 상세 정리

6342 단어 JavaIO 흐름
자바 IO 상세 설명:
자바 흐름 작업 과 관련 된 클래스 나 인터페이스:

Java 흐름 도표 구조:

 흐름 의 개념 과 역할
흐름 은 순서 가 있 고 출발점 과 종점 이 있 는 바이트 집합 으로 데이터 전송 에 대한 총칭 이나 추상 이다.즉,데이터 가 두 장치 간 의 전송 을 흐름 이 라 고 하 는데 흐름 의 본질은 데이터 전송 이다.데이터 전송 특성 에 따라 흐름 을 각 종류 로 추상 화하 여 더욱 직관 적 으로 데이터 조작 을 할 수 있다. 
IO 흐름 의 분류
4.567917.처리 데이터 유형 에 따라 문자 흐름 과 바이트 흐름 으로 나 뉜 다데이터 흐름 에 따라 입력 흐름 과 출력 흐름 으로 나 뉜 다 문자 흐름 과 바이트 흐름
문자 흐름 의 유래:데이터 인 코딩 이 다 르 기 때문에 문 자 를 효율적으로 조작 하 는 흐름 대상 이 생 겼 다.본질은 바이트 흐름 을 바탕 으로 읽 을 때 지정 한 코드 표를 찾 아 보 는 것 이다.바이트 흐름 과 문자 흐름 의 차이 점:
4.567917.읽 기와 쓰기 단 위 는 다르다.바이트 흐름 은 바이트(8bit)단위 이 고 문자 흐름 은 문자 단위 이 며 메타 맵 문자 에 따라 한 번 에 여러 개의 바이트 를 읽 을 수 있다4.567917.처리 대상 이 다 릅 니 다.바이트 흐름 은 모든 유형의 데이터(예 를 들 어 그림,avi 등)를 처리 할 수 있 고 문자 흐름 은 문자 형식의 데이터 만 처리 할 수 있 습 니 다결론:순수한 텍스트 데 이 터 를 처리 하 는 것 이 라면 문자 흐름 을 우선적으로 고려 해 야 한다.이외에 모두 바이트 흐름 을 사용 합 니 다.
 입력 흐름 과 출력 흐름
입력 흐름 에 대해 서 는 읽 기 작업 만 할 수 있 고 출력 흐름 에 대해 서 는 쓰기 작업 만 할 수 있 으 며 프로그램 에 서 는 전송 할 데이터 의 특성 에 따라 서로 다른 흐름 을 사용 해 야 합 니 다. 
Java IO 스 트림 대상
1.바이트 흐름 입력 InputStreamIO 에서 바이트 흐름 을 입력 한 계승 그림 은 위의 그림 을 볼 수 있 습 니 다.
  • InputStream 은 모든 입력 바이트 흐름 의 부모 클래스 로 추상 적 인 클래스 입 니 다
  • ByteArray InputStream,StringBufferInputStream,FileInputStream 은 세 가지 기본 적 인 미디어 흐름 으로 각각 Byte 배열,StringBuffer,로 컬 파일 에서 데 이 터 를 읽 습 니 다.Piped InputStream 은 다른 스 레 드 와 공유 하 는 파이프 에서 데 이 터 를 읽 고 Piped 와 관련 된 지식 을 추가 로 소개 합 니 다
  • Object InputStream 과 모든 FilterInputStream 의 하위 클래스 는 장식 흐름(장식 기 모드 의 주인공)이다. 2.출력 바이트 흐름 출력 스 트림
  • IO 에서 출력 바이트 흐름 의 계승 도 는 위의 그림 을 볼 수 있 고 다음 과 같다.
    OutputStream 은 모든 출력 바이트 흐름 의 부모 클래스 로 추상 적 인 클래스 입 니 다.ByteArray OutputStream,FileOutputStream 은 두 가지 기본 적 인 미디어 흐름 으로 각각 Byte 배열 과 로 컬 파일 에 데 이 터 를 기록 합 니 다.Piped OutputStream 은 다른 스 레 드 와 함께 사용 하 는 파이프 에 데 이 터 를 기록 합 니 다.Object OutputStream 과 모든 FilterOutputStream 의 하위 클래스 는 장식 흐름 입 니 다. 3.바이트 흐름 의 입력 과 출력의 대응

     그림 에서 파란색 은 주요 대응 부분 이 고 빨간색 부분 은 대응 하지 않 는 부분 이다.자줏빛 점선 부분 은 이런 흐름 을 대표 하여 일반적으로 배합 하여 사용 해 야 한다.위의 그림 에서 보 듯 자바 IO 의 바이트 흐름 은 극히 대칭 적 이다.'존재 와 합 리 성'이 바이트 흐름 에서 대칭 적 이지 않 은 몇 가지 유형 을 살 펴 보 자!
    1.LineNumberInputStream 은 주로 흐름 에서 데 이 터 를 읽 을 때 해당 하 는 줄 번 호 를 얻 을 수 있 습 니 다.언제 줄 을 나 누고 어디 에 줄 을 나 누 는 지 는 개 류 에 의 해 주동 적 으로 확 정 된 것 이지 원래 줄 번호 가 있 는 것 이 아 닙 니 다.출력 부분 에 대응 하 는 부분 이 없 는 부분 에 서 는 LineNumberOutputStream 을 만 들 수 있 습 니 다.처음에 기록 할 때 기준 적 인 줄 번호 가 있 습 니 다.나중에 줄 이 바 뀔 때마다 다음 줄 에 줄 번 호 를 추가 하 는 것 도 가능 할 것 같 습 니 다.더 안 들 어 가 는 것 같 애.
    2.Pushback InputStream 의 기능 은 마지막 바 이 트 를 보고 마음 에 들 지 않 으 면 버퍼 에 넣 는 것 입 니 다.주로 컴 파 일 러 의 문법,문법 분석 부분 에 쓰 인 다.출력 부분의 Buffered OutputStream 은 거의 비슷 한 기능 을 실현 한다.
    3.StringBufferInputStream 은 Deprecated 되 었 고 그 자체 가 InputStream 부분 에 나타 나 지 말 아야 합 니 다.주로 String 은 문자 흐름 의 범위 에 속 해 야 하기 때 문 입 니 다.이미 폐기 되 었 습 니 다.물론 출력 부분 도 필요 없습니다!버 전의 아래 호 환 을 유지 하기 위해 서 만 존재 할 수 있 습 니 다.
    4.Sequence InputStream 은 하나의 도구 클래스 로 볼 수 있 으 며,두 개 이상 의 입력 흐름 을 하나의 입력 흐름 으로 순서대로 읽 을 수 있 습 니 다.IO 가방 에서 완전히 제거 할 수 있 고 IO 가방 의 구조 에 전혀 영향 을 주지 않 지만 더욱'순결'한 DD 순결 한 Decorator 모델 을 만 들 수 있 습 니 다.
    5.PrintStream 도 보조 도구 라 고 볼 수 있다.주로 다른 출력 흐름 이나 FileInputStream 에 데 이 터 를 기록 할 수 있 으 며,내부 구현 은 버퍼 가 있 습 니 다.본질 적 으로 다른 흐름 을 종합 적 으로 운용 하 는 도구 일 뿐이다.똑 같이 IO 가방 을 찰 수 있어 요!System.out 과 System.out 이 PrintStream 의 인 스 턴 스 입 니 다!
     4.문자 입력 스 트림 리더
    위의 상속 관계 도 에서 볼 수 있다.
    1.Reader 는 모든 입력 문자 흐름 의 부모 클래스 로 추상 적 인 클래스 입 니 다.
    2.CharReader,StringReader 는 두 가지 기본 적 인 미디어 흐름 으로 각각 Char 배열,String 에서 데 이 터 를 읽 습 니 다.PipedReader 는 다른 스 레 드 와 공유 하 는 파이프 에서 데 이 터 를 읽 습 니 다.
    3.Buffered Reader 는 분명히 하나의 장식 기 이 고 그 하위 클래스 와 다른 Reader 대상 을 장식 하 는 것 을 책임 집 니 다.
    4.FilterReader 는 구체 적 인 장식 흐름 을 사용자 정의 하 는 모든 부모 클래스 로 하위 클래스 인 PushbackReader 가 Reader 대상 을 장식 하면 줄 번호 가 추 가 됩 니 다.
    5.InputStreamReader 는 바이트 흐름 과 문자 흐름 을 연결 하 는 다리 로 바이트 흐름 을 문자 흐름 으로 바 꿉 니 다.FileReader 는 이 기능 을 달성 하고 자주 사용 하 는 도구 류 라 고 할 수 있 으 며,소스 코드 에서 FileInputStream 을 Reader 로 바 꾸 는 방법 을 뚜렷하게 사용 했다.우 리 는 이런 종류 에서 일정한 기 교 를 얻 을 수 있다.Reader 의 각 종류의 용도 와 사용 방법 은 기본적으로 InputStream 의 클래스 와 일치 합 니 다.뒤에 Reader 와 InputStream 의 대응 관계 가 있 습 니 다. 5.문자 출력 스 트림 라이터
    위의 관계 도 에서 볼 수 있다.
    1.Writer 는 모든 출력 문자 흐름 의 부모 클래스 로 추상 적 인 클래스 입 니 다.
    2.CharArray Writer,StringWriter 는 두 가지 기본 적 인 미디어 흐름 으로 각각 Char 배열,String 에 데 이 터 를 기록 합 니 다.Piped Writer 는 다른 스 레 드 와 공유 하 는 파이프 에 데 이 터 를 기록 합 니 다.
    3.Buffered Writer 는 Writer 에 버퍼 기능 을 제공 하 는 장식 기 입 니 다.
    4.PrintWriter 와 PrintStream 은 매우 유사 하고 기능 과 사용 도 매우 비슷 하 다.
    5.OutputStreamWriter 는 OutputStream 에서 Writer 로 전환 하 는 다리 로 그의 하위 클래스 인 FileWriter 는 사실은 이 기능 을 실현 하 는 구체 적 인 유형(구체 적 으로 SourceCode 를 연구 할 수 있다)이다.기능 과 사용 은 OutputStream 과 매우 유사 하 며,뒤에 대응 하 는 그림 이 있 을 것 이다. 6.문자 흐름 의 입력 과 출력의 대응

     7.문자 흐름 과 바이트 흐름 변환
    전환 흐름 의 특징:
    4.567917.문자 흐름 과 바이트 흐름 사이 의 교량 이다읽 은 바이트 데 이 터 를 지정 한 인 코딩 을 통 해 문자 로 변환 할 수 있 습 니 다읽 은 문자 데 이 터 를 지정 한 인 코딩 을 통 해 바이트 로 변환 할 수 있 습 니 다전환 흐름 은 언제 사용 합 니까?
  • 바이트 와 문자 사이 에 전환 동작 이 있 을 때..
  • 4.567917.스 트림 작업 의 데 이 터 를 인 코딩 하거나 디 코딩 해 야 할 때..구체 적 인 대상 구현:
  • InputStreamReader:바이트 에서 문자 까지 의 교량
  • 4
  • OutputStream Writer:문자 가 바이트 까지 의 다리
  • 이 두 개의 흐름 대상 은 문자 시스템 의 구성원 으로 전환 작용 을 하 며 그 자체 가 문자 흐름 이기 때문에 구조 할 때 바이트 흐름 대상 에 들 어가 야 한다.
     8.File 클래스
    File 클래스 는 파일 시스템 의 파일 과 폴 더 를 봉인 하 는 대상 으로 대상 의 사상 을 통 해 파일 과 폴 더 를 조작 할 수 있 습 니 다.File 류 는 파일 이나 디 렉 터 리 의 각종 메타 데이터 정 보 를 저장 합 니 다.파일 이름,파일 길이,마지막 수정 시간,읽 을 수 있 는 지,현재 파일 의 경로 이름 을 가 져 올 지,지정 한 파일 이 존재 하 는 지,현재 디 렉 터 리 의 파일 목록 을 가 져 올 지,파일 과 디 렉 터 리 를 만 들 거나 삭제 하 는 등 방법 을 포함 합 니 다. 
    9.RandomAccessFile 클래스
    이 대상 은 스 트림 시스템 의 일원 이 아 닙 니 다.바이트 스 트림 을 패키지 하 는 동시에 버퍼(문자 배열)를 패키지 하여 내부 지침 을 통 해 문자 배열 의 데 이 터 를 조작 합 니 다.대상 특징:
    이 대상 은 파일 만 조작 할 수 있 기 때문에 구조 함 수 는 두 가지 유형의 인 자 를 받 습 니 다.a.문자열 파일 경로;b.File 대상.이 대상 은 파일 을 읽 기 작업 도 할 수 있 고 쓰기 작업 도 할 수 있 으 며 대상 을 예화 할 때 작업 모드(r,rw)를 지정 할 수 있 습 니 다.
    메모:이 대상 이 실례 화 될 때 작업 할 파일 이 존재 하지 않 으 면 자동 으로 생 성 됩 니 다.파일 이 존재 하면 데이터 가 지정 되 지 않 은 위 치 를 쓰 면 처음부터 쓰기 시작 합 니 다.즉,원래 의 내용 을 덮어 씁 니 다.다 중 스 레 드 다운로드 나 여러 스 레 드 에서 파일 에 데 이 터 를 동시에 쓸 수 있 습 니 다.
     읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

    좋은 웹페이지 즐겨찾기