2012-03-26 5 views
1

Iam versuchen, eine binäre Datei in den Speicher zu lesen und die Startadresse des Speicherblocks mit einer nativen Funktion übergeben:Zugriff auf Byte-Elemente in „Memory“

Memory image = new Memory(length); 
int offset = 0; 
int numRead = 0; 
    try 
    { 
    while (offset < image.size() && (numRead = in.read(image.getByteArray(0,(int)image.size()), offset, (int)image.size() - offset)) >= 0) 
    { 
     offset += numRead; 
    } 

    if (offset < image.size()) 
    { 
     throw new IOException("Could not completely read file " + fileFileName.getName()); 
    } 
    in.close(); 
    } 
    catch(Exception IOException) 
    { 
     System.out.println("\nError Occured in try block!!!"); 
    } 
    byte imageByte = image.getByte(0); 

Das Problem ist, dass der Wert von imageByte ist - 60 statt 127. Ich überprüfte, indem ich ein Byte-Array (statt Memory) nahm und die Datei darin einlas. Aber es zeigte auch 127 für Array [0]. Was kann hier das Problem sein ???

+0

Sie bitte Ihre Auflösung hinzufügen, eine Antwort und markieren Sie es als ausgenommen. – lockstock

Antwort

0

ok gelöst ich das Problem: D da getByteArray() einen neuen Byte-Array zurückgibt, wurde die Daten auf den neuen Byte-Array kopiert werden und den Speicherbereich, die ich will uninitialised geblieben verwenden