Проблемы двоичного файла загрузки Android

На xaxis у меня есть даты, и я хотел бы добавить его в верхней части всплывающей подсказки, я попытался:

            return   Highcharts.dateFormat('%b - %Y',
                                      new Date(p.x)) +' <span style="color:' + p.point.color + '">\u25CF</span> ' + p.series.name + ': <b>' + Math.round(p.point.y) + '% (' + Math.round(low) + '-' + Math.round(high) + ')</b><br/>'
        }

Но он добавляет его в каждую строку, а не только в верхней части [ 112]

71
задан Isaac Waller 31 December 2009 в 01:19
поделиться

2 ответа

Я не знаю, является ли это единственная проблема, но у Вас есть классический незначительный сбой Java там: Вы не рассчитываете на факт, которые читают (), всегда , позволил возвращать меньше байтов, чем Вы просите. Таким образом Ваше чтение могло получить меньше чем 1 024 байта, но Ваша запись всегда выписывает точно 1 024 байта возможно включая байты от предыдущего повторения цикла.

Корректный с:

 while ( (len1 = in.read(buffer)) > 0 ) {
         f.write(buffer,0, len1);
 }

, Возможно, более высокие сети задержки или размеры пакета меньшего размера 3G на Android усиливают эффект?

93
ответ дан Ry4an Brase 24 November 2019 в 12:58
поделиться

Одной проблемой является Ваше чтение буфера. Если каждое чтение входного потока не будет точным несколько из 1 024, то Вы скопируете неправильные данные. Используйте:

byte[] buffer = new byte[1024];
int len1 = 0;
while ( (len1 = in.read(buffer)) != -1 ) {
  f.write(buffer,0, len1);
}
16
ответ дан Clint 24 November 2019 в 12:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: