Есть файл, размером 141387112 байт, использую ByteBuffer метод getInt(); Получаю первое число, это число = кол-ву точек. Кол-во точек умножаю на 12, по 3 флоат на точку, и по 4 байта на каждый флоат. После считывания и записи в массив следующий getInt должен вернуть мне целочисленное число, но возвращает огроменное число, выходящие за пределы кол-ва. Помогите решить проблему с неправильным считыванием.
try (FileInputStream fin = new FileInputStream(myFile)) {
//получаем размер файла
System.out.println("Размер файла: " + fin.available() + " байт");
//задаем размер для буфера
byte[] buffer = new byte[fin.available()];
//считываем и заносим в буфер
fin.read(buffer, 0, fin.available());
ByteBuffer bb = ByteBuffer.wrap(buffer);
count_points = bb.getInt(); // кол-во точек
bb.order(ByteOrder.LITTLE_ENDIAN);
Log.w("W","кол-во точек = " + count_points);
//переводим это кол-во в байты
count_mul = count_points * 12;
Log.w("W","кол-во байт которые занимают точки = " + count_mul);
//обьявляем массив размерностью точек
mass_vertices = new float[count_points * 3]; //NEW было count_mul стало count_points * 3
//Заносим в массив
int p =0;
for(int i = 0; i < count_points * 3 ; i ++) {
mass_vertices[i] = bb.getFloat();
p+=4;
}
bb.order(ByteOrder.BIG_ENDIAN);
Log.w("W","кол-во цветных точек = " + bb.getInt());
Log.w("W","кол-во счит байтов = " + p);
Log.w("W","X = " + mass_vertices[0]);
Log.w("W","Y = " + mass_vertices[1]);
Log.w("W","Z = " + mass_vertices[2]);
Лог:
СЧИТЫВАЕМ ФАЙЛ
I/System.out:
Размер файла: 141387112 байт
W/W: кол-во точек = 793974
W/W: кол-во байт которые занимают точки = 9527688
кол-во цветных точек = 70256
W/W: кол-во счит байтов = 9527688
W/W: X = 18230.195
W/W: Y = 21232.865
W/W: Z = 0.0
E/E: __________________________________
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите пожалуйста статью о создании торрент клиента на андроид
Написал класс коллекции с фиксированным размером и методом для проверки является ли она заполненнойПосмотрите, пожалуйста, все ли здесь...
Какой код использовать для внедрения этой либы в Fragment?