Kann mir jemand mit folgender Methode helfen, die ich im Netz gefunden habe, helfen:
Das die Methode einen Stream ausliest und das Ergebnis in einem byte[] zurückgibt ist mir klar. Allerding verstehe ich die Zeile:
nicht.
Kann mir das jemand erklären?
Code:
public byte[] read(BufferedInputStream inputtream) throws Exception{
byte[] pSize = new byte[4];
int nTotal = 0;
int nRead = 0;
while(nTotal<4){
nRead = inputtream.read(pSize,nTotal,4-nTotal);
if(nRead<0) break;
nTotal += nRead;
}
int nSize = (pSize[0]&0x000000ff)|((pSize[1]&0x000000ff)<<8)|((pSize[2]&0x000000ff)<<16)|((pSize[3]&0x000000ff)<<24);
if(nSize==0){
return "".getBytes();
}
byte[] pData = new byte[nSize];
nTotal = 0;
nRead = 0;
while(nTotal<nSize){
nRead = inputtream.read(pData,nTotal,nSize-nTotal);
if(nRead<0) break;
nTotal += nRead;
}
return pData;
}
Das die Methode einen Stream ausliest und das Ergebnis in einem byte[] zurückgibt ist mir klar. Allerding verstehe ich die Zeile:
Code:
int nSize = (pSize[0]&0x000000ff)|((pSize[1]&0x000000ff)<<8)|((pSize[2]&0x000000ff)<<16)|((pSize[3]&0x000000ff)<<24);
Kann mir das jemand erklären?