code: public static byte[] toByteArray(InputStream stream) throws IOException {
  		// Wyznaczanie rozmiaru strumienia:
  		long length = stream.available();
  
  		// Nie można utworzyć tablicy używając typu long. Wymagany jest do tego
  		// typ int. Przed konwersją sprawdzamy, czy strumień nie jest zbyt duży:
  		if(length > Integer.MAX_VALUE) {
  			throw new RuntimeException("Stream is to large.");
  		}
  
  		// Tworzymy tablicę do przechowywania danych ze strumienia i odczytujemy:
  		byte[] bytes = new byte[(int)length];
  
  		int offset = 0;
  		int numRead = 0;
  		while(offset < bytes.length	&& (numRead = stream.read(
  				bytes, offset, bytes.length - offset)) >= 0) {
  			offset += numRead;
  		}
  
  		// Sprawdzamy, czy wszystkie dane zostały odczytane:
  		if(offset < bytes.length) {
  			throw new IOException("Could not completely read stream.");
  		}
  
  		// Zamykamy strumień i zwracamy tablicę z jego zawartością:
  		stream.close();
  
  		return bytes;
  	}
docs: Konwertuje struień wejściowy na tablicę bajtów.
  
  @param stream Strumień wejściowy do konwersji.
  @return Tablica bajtów odczytanych ze strumienia.
  
  @throws IOException W przypadku błędu odczytu strumienia.