V tomto příkladu se naučíme převádět vstupní proud na bajtové pole v Javě.
Abychom porozuměli tomuto příkladu, měli byste znát následující programovací témata Java:
- Třída Java InputStream
- Třída Java ByteArrayInputStream
- Třída Java ByteArrayOutputStream
Příklad 1: Program Java pro převod InputStream na bajtové pole
import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // convert the input stream to byte array byte() array = stream.readAllBytes(); System.out.println("Byte Array: " + Arrays.toString(array)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Výstup
Vstupní proud: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)
Ve výše uvedeném příkladu jsme vytvořili vstupní proud s názvem stream. Všimněte si řádku,
byte() array = stream.readAllBytes();
Zde readAllBytes()
metoda vrací všechna data ze streamu a ukládá je do bajtového pole.
Poznámka : Arrays.toString()
Metodu jsme použili k převodu celého pole na řetězec.
Příklad 2: Převést InputStream na bajtové pole pomocí výstupního proudu
import java.io.InputStream; import java.util.Arrays; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; public class Main ( public static void main(String args()) ( try ( // create an input stream byte() input = (1, 2, 3, 4); InputStream stream = new ByteArrayInputStream(input); System.out.println("Input Stream: " + stream); // create an output stream ByteArrayOutputStream output = new ByteArrayOutputStream(); // create a byte array to store input stream byte() array = new byte(4); int i; // read all data from input stream to array while ((i = stream.read(array, 0, array.length)) != -1) ( // write all data from array to output output.write(array, 0, i); ) byte() data = output.toByteArray(); // convert the input stream to byte array System.out.println("Byte Array: " + Arrays.toString(data)); stream.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Výstup
Vstupní proud: java.io.ByteArrayInputStream@27082746 Byte Array: (1, 2, 3, 4)
Ve výše uvedeném příkladu jsme vytvořili vstupní proud ze vstupu pole. Všimněte si výrazu,
stream.read(array, 0, array.length)
Zde jsou všechny prvky ze streamu uloženy v poli počínaje indexem 0 . Poté uložíme všechny prvky pole do výstupního proudu s názvem output.
output.write(array, 0, i)
Nakonec zavoláme toByteArray()
metodu ByteArrayOutputStream
třídy pro převod výstupního proudu na bajtové pole s názvem data.