>  기사  >  Java  >  자바 스트림의 차이점은 무엇입니까

자바 스트림의 차이점은 무엇입니까

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-11-14 09:36:481801검색

자바 스트림의 차이점은 무엇입니까

프로그램의 모든 데이터는 스트림 형식으로 전송되거나 저장됩니다. 프로그램에 데이터가 필요할 때는 입력 스트림을 사용하여 데이터를 읽어야 하며, 프로그램에서 일부 데이터를 저장해야 할 때는 스트림 형식을 사용해야 합니다. 출력 스트림이 완료되었습니다.

프로그램의 입력과 출력은 모두 스트림 형태로 저장되며, 스트림에 저장되는 것은 실제로 바이트 파일입니다.

바이트 스트림 및 문자 스트림

java.io 패키지에는 바이트 스트림과 문자 스트림이라는 두 가지 주요 운영 파일 콘텐츠 범주가 있으며, 둘 다 입력 및 출력 작업으로 구분됩니다. 바이트 스트림으로의 데이터 출력은 주로 OutputStream을 사용하여 이루어지며, 입력은 주로 Writer 클래스를 사용하여 이루어지며, 입력 스트림은 주로 Reader 클래스를 사용하여 수행됩니다. (이 네 가지는 추상 클래스입니다.)

Java는 다음을 포함하는 입력 및 출력 기능인 Java.io 전용 패키지를 제공합니다.

InputStream, OutputStream, Reader, Writer

InputStream 및 OutputStream 중 두 개는 바이트 스트림이 설계되었습니다. 주로 바이트나 바이너리 객체를 처리하는 데 사용됩니다.

Reader 및 Writer는 문자 스트림(한 문자가 2바이트를 차지함)용으로 설계되었으며 주로 문자나 문자열을 처리하는 데 사용됩니다.

문자 스트림 처리 단위는 각각 문자, 문자 배열 또는 문자열에서 작동하는 2바이트 유니코드 문자인 반면, 바이트 스트림 처리 단위는 바이트 및 바이트 배열에서 작동하는 1바이트입니다. 따라서 문자 스트림은 바이트를 2바이트 유니코드 문자로 변환하는 JVM(Java Virtual Machine)에 의해 형성되므로 다중 언어에 대한 더 나은 지원이 가능합니다! 오디오 파일, 그림, 노래인 경우에는 바이트 스트림을 사용하는 것이 좋습니다. 중국어(텍스트)와 관련된 경우 문자 스트림을 사용하는 것이 좋습니다.

모든 파일은 바이트 단위로 저장됩니다. 디스크에 보관되는 것은 파일의 문자가 아니라 먼저 문자가 바이트로 인코딩된 다음 이 바이트가 디스크에 저장됩니다. 파일(특히 텍스트 파일)을 읽을 때 바이트 단위로 읽어 바이트 시퀀스를 형성하기도 합니다.

바이트 스트림은 바이너리 객체를 포함한 모든 유형의 객체에 사용할 수 있지만 문자 스트림은 문자 또는 문자열만 처리할 수 있습니다. 2. 바이트 스트림은 모든 유형의 IO 작업을 처리하는 기능을 제공하지만 유니코드 문자를 직접 처리할 수는 없습니다. 문자 스트림이 가능합니다.

바이트 스트림은 가장 기본이며, InputStrem과 OutputStream의 모든 하위 클래스는 주로 바이너리 데이터를 처리하는 데 사용되지만 실제로는 많은 데이터가 텍스트이며 문자 스트림이 제안됩니다. 가상 머신의 인코딩에 따라 처리됩니다. 즉, 두 개는 InputStreamReader와 OutputStreamWriter를 통해 관련되어 있으며 실제로는 byte[]와 String을 통해 관련되어 있으며 실제 개발에서는 나타나는 문제입니다. 실제로 문자 스트림과 바이트 스트림 간의 변환 불일치로 인해 발생합니다.

Reader 클래스의 read() 메서드는 int 유형을 반환합니다. 스트림의 끝이 도달하면 -1이 반환됩니다.

inputStream의 read()도 int를 반환하지만 이 클래스는 바이트 스트림을 지향하고 1바이트가 8비트를 차지하므로 0~255 범위의 int 바이트 값을 반환합니다. 스트림 끝에 도달하여 사용 가능한 바이트가 없으면 -1 값이 반환됩니다. 따라서 0~255로 표현할 수 없는 값은 문자 스트림을 이용하여 읽어야 합니다! 예를 들어, 한자.

php 중국어 웹사이트, 수많은 무료 Java 입문 튜토리얼, 온라인 학습을 환영합니다!

위 내용은 자바 스트림의 차이점은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.