Доступ к элементам байта в «Памяти» - PullRequest
1 голос
/ 26 марта 2012

Я пытаюсь прочитать двоичный файл в память и передать начальный адрес блока памяти собственной функции:

 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);

Проблема в том, что значение imageByte равно -60 вместо 127. Я проверил, взяв массив байтов (вместо памяти) и считав в него файл. Но он также показал 127 для массива [0]. В чем здесь может быть проблема ???

1 Ответ

0 голосов
/ 26 марта 2012

хорошо, я решил проблему: D, поскольку getByteArray () возвращает новый байтовый массив, данные копировались в этот новый байтовый массив, а область памяти, которую я хочу использовать, оставалась неинициализированной

...