산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> java

자바 ByteArrayInputStream 클래스

자바 ByteArrayInputStream 클래스

이 자습서에서는 예제를 통해 Java ByteArrayInputStream 및 해당 메서드에 대해 알아봅니다.

ByteArrayInputStream java.io 클래스 패키지는 입력 데이터 배열(바이트 단위)을 읽는 데 사용할 수 있습니다.

InputStream 확장 추상 클래스.

참고 :ByteArrayInputStream에서 , 입력 스트림은 바이트 배열을 사용하여 생성됩니다. 특정 바이트 배열의 데이터를 저장하기 위한 내부 배열을 포함합니다.

<시간>

ByteArrayInputStream 생성

바이트 배열 입력 스트림을 생성하려면 java.io.ByteArrayInputStream을 가져와야 합니다. 먼저 패키지. 패키지를 가져온 후 입력 스트림을 만드는 방법은 다음과 같습니다.

// Creates a ByteArrayInputStream that reads entire array
ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr);

여기에서 arr에서 전체 데이터를 읽는 입력 스트림을 만들었습니다. 정렬. 그러나 배열에서 일부 데이터만 읽는 입력 스트림을 만들 수도 있습니다.

// Creates a ByteArrayInputStream that reads a portion of array
ByteArrayInputStream input = new ByteArrayInputStream(byte[] arr, int start, int length);

여기서 입력 스트림은 length와 같은 바이트 수를 읽습니다. start에서 시작하는 배열에서 위치.

<시간>

ByteArrayInputStream의 메소드

ByteArrayInputStream 클래스는 InputStream에 있는 다양한 메서드에 대한 구현을 제공합니다. 수업.

read() 메소드

예:데이터를 읽는 ByteArrayInputStream

import java.io.ByteArrayInputStream;

public class Main {
  public static void main(String[] args) {

    // Creates an array of byte
    byte[] array = {1, 2, 3, 4};

    try {
      ByteArrayInputStream input = new ByteArrayInputStream(array);

      System.out.print("The bytes read from the input stream: ");

      for(int i= 0; i < array.length; i++) {

        // Reads the bytes
        int data = input.read();
        System.out.print(data + ", ");
      }
      input.close();
    }

    catch(Exception e) {
      e.getStackTrace();
    }
  }
}

출력

The bytes read from the input stream: 1, 2, 3, 4,

위의 예에서 input이라는 바이트 배열 입력 스트림을 만들었습니다. .

ByteArrayInputStream input = new ByteArrayInputStream(array);

여기에서 입력 스트림에는 지정된 배열의 모든 데이터가 포함됩니다. 입력 스트림에서 데이터를 읽기 위해 read()을 사용했습니다. 방법.

<시간>

available() 메서드

입력 스트림에서 사용 가능한 바이트 수를 얻으려면 available()을 사용할 수 있습니다. 방법. 예를 들어,

import java.io.ByteArrayInputStream;

public class Main {

  public static void main(String args[]) {

    // Creates an array of bytes
    byte[] array = { 1, 2, 3, 4 };

    try {
      ByteArrayInputStream input = new ByteArrayInputStream(array);

      // Returns the available number of bytes
      System.out.println("Available bytes at the beginning: " + input.available());

      // Reads 2 bytes from the input stream
      input.read();
      input.read();

      // Returns the available number of bytes
      System.out.println("Available bytes at the end: " + input.available());

      input.close();
    }

    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

출력

Available bytes at the beginning: 4
Available bytes at the end: 2

위의 예에서

  1. available()를 사용했습니다. 입력 스트림에서 사용 가능한 바이트 수를 확인하는 메서드입니다.
  2. 우리는 read()을 사용했습니다. 메서드를 2번 사용하여 입력 스트림에서 2바이트를 읽습니다.
  3. 이제 2바이트를 읽은 후 사용 가능한 바이트를 확인했습니다. 이번에는 사용 가능한 바이트가 2로 감소했습니다.
<시간>

skip() 메서드

지정된 바이트 수를 삭제하고 건너뛰려면 skip()을 사용할 수 있습니다. 방법. 예를 들어,

import java.io.ByteArrayInputStream;

public class Main {

  public static void main(String args[]) {

    // Create an array of bytes
    byte[] array = { 1, 2, 3, 4 };
    try {
      ByteArrayInputStream input = new ByteArrayInputStream(array);

      // Using the skip() method
      input.skip(2);
      System.out.print("Input stream after skipping 2 bytes: ");

      int data = input.read();
      while (data != -1) {
        System.out.print(data + ", ");
        data = input.read();
      }

      // close() method
      input.close();
    }

    catch (Exception e) {
      e.getStackTrace();
    }
  }
}

출력

Input stream after skipping 2 bytes: 3, 4,

위의 예에서는 skip()를 사용했습니다. 입력 스트림에서 2바이트의 데이터를 건너뛰는 메서드입니다. 따라서 12 입력 스트림에서 읽지 않습니다.

<시간>

close() 메소드

입력 스트림을 닫으려면 close()을 사용할 수 있습니다. 방법.

그러나 close() 메소드는 ByteArrayInputStream에서 효과가 없습니다. 수업. close() 이후에도 이 클래스의 메소드를 사용할 수 있습니다. 메소드가 호출됩니다.

<시간>

ByteArrayInputStream의 다른 메서드

메소드 설명
finalize() close() 메소드 호출
mark() 입력 스트림에서 데이터를 읽은 위치를 표시
reset() 표시가 설정된 입력 스트림의 지점으로 컨트롤을 반환합니다.
markSupported() 입력 스트림이 mark()을 지원하는지 확인합니다. 및 reset()

자세한 내용은 Java ByteArrayInputStream(공식 Java 설명서)을 참조하십시오.


java

  1. 자바 복사 배열
  2. 자바 최종 키워드
  3. 자바 instanceof 연산자
  4. 자바 중첩 정적 클래스
  5. 자바 익명 클래스
  6. 자바 싱글톤 클래스
  7. 자바 리플렉션
  8. 자바 ObjectOutputStream 클래스
  9. 자바 스캐너 클래스
  10. 자바 제네릭