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.