Hvordan konvertere en Java Integer til Bytes

Hvordan konvertere en Java Integer til Bytes


Svært lite programmering arbeids avtaler direkte med bytes. Mesteparten av arbeidet innebærer høyere nivå representasjoner av bytes som, i Java, heltall strykere og tegn. Men spesielt når du arbeider med filen inngang og utgang, i mange tilfeller aa programmerer må få rå bytes som utgjør en av de mest brukte datatyper. Får en byte array representasjon av et objekt i Java er enkel å bruke noen av klassene i java.io pakken.

Bruksanvisning

1 Opprett en ny klasse i prosjektet; navnet er irrelevant, men sørg for at du velger boksen "public static void main (String [] args)" slik at du har et sted å legge koden din som gjør at du kan teste den.

2 Opprett en Integer objekt. Merk at du ikke kan arbeide med en enkel "int" primitiv; det må være et heltall. Bruk følgende kode for å opprette et heltall fra en int verdi.

int theInt = 5;

Integer theIntegerObject = new Integer (theInt);

3 Legg til følgende kode for å hente en byte array representasjon av objektet:

endelig ByteArrayOutputStream baos = new ByteArrayOutputStream ();

endelig ObjectOutputStream OOS = new ObjectOutputStream (baos);

oos.writeObject (theIntegerObject);

siste byte [] bytes = baos.toByteArray ();

// Bruk byte etter behov.

4 For å få objektet tilbake - i dette tilfellet en Integer - du kan reversere prosessen på en lignende måte:

ByteArrayInputStream bais = ny ByteArrayInputStream (bytes);

Object ois = new Object (bais);

endelig Object obj = ois.readObject ();

Fell den returnerte objektet til den typen du venter.

Hint

  • Dette er en situasjon som er helt klart ringer for å bli refactored inn verktøyet metoder i en egen klasse. Ved å opprette en ekstra klasse til å inneholde disse som nytte metoder, kan du også legge til flere metoder for å støpes de returnerte objektene for deg hvis du bruker metodene ganske ofte for bestemte datatyper.
  • For å holde prøvene konsis, ble avvikshåndtering utelatt, men du må sørge for at du dekker det i din egen kode. Både ObjectOutputStream og Object metoder brukes kaste IOExceptions, og Object er readObject metoden kaster en ClassNotFoundException. Håndtere disse på riktig måte i prosjektet.