2015-10-13 5 views
0

Я пытаюсь загрузить URL-адрес, который является zip-файлом .. Сейчас я читаю в файле, чтобы получить размер. Затем создать массив целых чисел с этим размером, а затем прочитать в файле снова и хранить его в моем массивеПытается загрузить в URL-адрес

  1. Есть ли способ, чтобы получить размер URL, так что я не должен читать его в два раза ?
  2. Есть ли способ изменить размер массива, когда я его прочитал, поэтому мне не нужно заранее получать размер.

Кажется, глупо читать в файле 3 раза

+0

использовать, например, [ 'java.io.ByteArrayInputStream'] (HTTP: // документы .oracle.com/javase/8/docs/api/java/io/ByteArrayInputStream.html) вместо прямого использования массива. – Jesper

+0

Очень глупо читать это 3 раза. Используйте буфер. http://stackoverflow.com/questions/921262/how-to-download-and-save-a-file-from-internet-using-java – jgitter

+0

Вы пытаетесь сохранить файл на свой компьютер или хотите кэшировать это в коде? – mezzodrinker

ответ

2

Это зависит от того, как реализован сервер/сервис. Попробуйте прочитать на "HTTP-заголовок" Content-Length первый Е.Г.

URL url = new URL("http(s)://yourfileURL"); 
URLConnection urlConnection = url.openConnection(); 
urlConnection.connect(); 
int file_size = urlConnection.getContentLength(); 

или

urlConnection.getHeaderField("Content-Length"); 

См Content-Length

Смежные вопросы