파일 외에도 스트림의 소스와 대상이 컴퓨터 메모리 일 수도 있다는 점을 알아야 합니다.
바이트 배열 입력 스트림 ByteArrayInputStream 및 바이트 배열 출력 스트림 ByteArrayOutputStream은 각각 바이트 배열을 스트림의 소스 및 대상으로 사용합니다.
ByteArrayInputStream(byte[]buf);ByteArrayInputStream(byte[]buf,intoffset,intlength);
첫 번째 생성자에 의해 생성된 바이트 배열 스트림의 소스는 매개변수 buf에 의해 지정된 배열의 모든 바이트 단위입니다. 두 번째 생성자에 의해 생성된 바이트 배열 스트림의 소스는 오프셋에서 순서대로 가져온 buf에 의해 지정된 배열입니다. 길이 바이트 단위.
바이트 배열 입력 스트림은 public int read()를 호출합니다. 메서드는 소스에서 순차적으로 바이트를 읽을 수 있으며, 해당 메서드는 읽은 바이트 값을 반환합니다. call public int read(byte[] b,int off,int len ); 매개변수 len으로 지정된 바이트 수를 소스에서 순차적으로 읽고, 읽은 바이트를 매개변수 b로 지정된 배열에 저장할 수 있습니다. 매개변수 off는 읽은 바이트를 저장할 배열 b의 시작 위치를 지정합니다. 읽은 바이트 수. 읽은 바이트가 없으면 읽기 메서드는 -1을 반환합니다.
ByteArrayOutputStream();ByteArrayOutputStream(intsize);
첫 번째 생성자에 의해 생성된 바이트 배열 출력 스트림은 기본 크기가 32바이트인 버퍼를 가리킵니다. 출력 스트림이 버퍼에 쓴 바이트 수가 버퍼보다 크면 버퍼의 용량이 자동으로 늘어납니다.
두 번째 생성자가 생성한 바이트 배열 출력 스트림이 가리키는 버퍼의 초기 크기는 매개변수 크기로 지정됩니다. 출력 스트림이 버퍼에 쓴 바이트 수가 버퍼보다 크면 버퍼의 용량이 자동으로 커집니다. 증가하다.
바이트 배열 출력 스트림은 public void write(int b)를 호출합니다. 메서드는 버퍼에 순차적으로 바이트를 쓸 수 있습니다. 메서드는 public void write(byte[] b, int off, int len)를 호출합니다. in 지정된 len 바이트는 순차적으로 버퍼에 기록되고, off 매개변수는 b에서 기록된 바이트의 시작 위치를 지정합니다. public byte[] toByteArray() 메서드를 호출하면 바이트에 기록된 모든 출력 스트림을 반환할 수 있습니다. .
바이트 배열 스트림에 해당하는 문자 배열 스트림은 CharArrayReader 클래스와 CharArrayWriter 클래스입니다. 문자 배열 스트림은 각각 문자 배열을 스트림의 소스와 대상으로 사용합니다.
예를 들어 배열 스트림을 사용하여 "중추절"과 "행복한 중추절"을 메모리(출력 스트림의 버퍼)에 쓴 다음 메모리에서 작성된 데이터를 읽습니다.
importjava.io.*;publicclassMain{publicstaticvoidmain(Stringargs[]){try{ByteArrayOutputStreamoutByte=newByteArrayOutputStream();byte[]byteContent=mid-autumnfestival.getBytes();outByte.write(byteContent);ByteArrayInputStreaminByte=newByteArrayInputStream(outByte.toByteArray ());bytebackByte[]=newbyte[outByte.toByteArray().length];inByte.read(backByte);System.out.println(newString(backByte));CharArrayWriteroutChar=newCharArrayWriter();char[]charContent=Mid -가을 축제 Happy.toCharArray();outChar.write(charContent);CharArrayReaderinChar=newCharArrayReader(outChar.toCharArray());charbackChar[]=newchar[outChar.toCharArray().length];inChar.read(backChar);시스템 .out.println(newString(backChar));}catch(IOExceptionexp){}}}