Определите размер InputStream

вместо того, чтобы использовать различный псевдоним для объекта jQuery (при использовании noConflict), я всегда пишу свой код jQuery путем обертывания всего этого в закрытие. Это может быть сделано в функции document.ready:

var $ = someOtherFunction(); // from a different library

jQuery(function($) {
    if ($ instanceOf jQuery) {
        alert("$ is the jQuery object!");
    }
});

альтернативно можно сделать это как это:

(function($) {
    $('...').etc()    // whatever jQuery code you want
})(jQuery);

я нахожу, что это является самым портативным. Я работал над сайтом, который использует и Прототип И jQuery одновременно, и эти методы избежали всех конфликтов.

62
задан Serhiy 28 November 2016 в 10:04
поделиться

3 ответа

Я просто хотел добавить, Apache Commons IO имеет утилиты поддержки потока для выполнения копирования. (Кстати, что вы имеете в виду, помещая файл во входной поток? Вы можете показать нам свой код?)

Редактировать:

Хорошо, что вы хотите сделать с содержимым элемента? Существует item.get () , который возвращает все в массиве байтов.

Edit2

item.getSize () вернет загруженный файл размер .

12
ответ дан 24 November 2019 в 16:46
поделиться

Я бы прочитал ByteArrayOutputStream , а затем вызвал toByteArray () , чтобы получить результирующий массив байтов. Вам не нужно заранее определять размер (хотя, возможно, это оптимизация , если вы его знаете . Во многих случаях вы этого не сделаете)

34
ответ дан 24 November 2019 в 16:46
поделиться

Вы не можете определить объем данных в потоке, не прочитав их; однако вы можете запросить размер файла:

http://java.sun.com/javase/6/docs/api/java/io/File.html#length ()

Если это невозможно, вы можете записать байты, прочитанные из входного потока, в ByteArrayOutputStream , который будет увеличиваться по мере необходимости.

19
ответ дан 24 November 2019 в 16:46
поделиться
Другие вопросы по тегам:

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