Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [JAVA] lettura file dalla rete

    ciao a tutti

    sto sviluppando un'applicazione che legge delle informazioni da un file che si trova su di un server,
    per leggere questo file faccio qualcosa del genere:

    url = new URL( "http://sito/file.txt" );

    HttpURLConnection url_connection = (HttpURLConnection) url.openConnection();
    url_connection.setRequestMethod( "GET" );

    url_connection.connect();

    InputStream inS = url_connection.getInputStream();
    BufferedReader reader = new BufferedReader( new InputStreamReader( inS ) );

    Il problema è che il file che leggo è di 10 megabyte, ed anche se devo leggere solo 100 byte che si trovano alla fine del file, impiego molto tempo (credo a causa del fatto che il file venga scandito interamente )

    qualcuno può darmi qualche consiglio?

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: [JAVA] lettura file dalla rete

    Originariamente inviato da __Aless#ndro###
    qualcuno può darmi qualche consiglio?
    Sì, vedere il mio esempio "Download from a URL" qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    non credo sia la soluzione al mio problema,

    mi spiego meglio:
    io non voglio scaricare l'intero file, ma leggerne solo alcuni byte,
    sfortunatamente i byte interessati potrebbero trovarsi alla fine del file, vorrei sapere se è possibile reperire queste informazioni in un tempo ragionevole

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da __Aless#ndro###
    ma leggerne solo alcuni byte
    Per questo il protocollo HTTP prevede l'header "Range" (http://www.w3.org/Protocols/rfc2616/....html#sec14.35).

    codice:
    urlConn.setRequestProperty("Range", "bytes=300-400");   // Scarica solo i byte dal 300 al 400 compresi
    Non tutti i server però potrebbero supportarlo!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    grazie per la risposta immediata
    faccio qualche prova

  6. #6
    funziona!

    ma è possibile selezionare più intervalli?

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da __Aless#ndro###
    ma è possibile selezionare più intervalli?
    Dal link http://www.w3.org/Protocols/rfc2616/....html#sec14.35

    Several legal but not canonical specifications of the second 500
    bytes (byte offsets 500-999, inclusive):
    bytes=500-600,601-999
    bytes=500-700,601-999

    Ma attenzione, perché la response viene trasmessa come tipo "multipart/byteranges", quindi più difficile da "parsare". Non sono "banalmente" i gruppi di byte uno dietro l'altro!!
    Vedi http://tools.ietf.org/html/rfc2068#section-19.2
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Ma attenzione, perché la response viene trasmessa come tipo "multipart/byteranges"
    era proprio questo il problema,
    ti ringrazio infinitamente per avermi aiutato a risolvere il problema

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2010
    Messaggi
    17

    Re: Re: [JAVA] lettura file dalla rete

    Originariamente inviato da andbin
    Sì, vedere il mio esempio "Download from a URL" qui.
    come si specifica il percorso dove salvare il file?? si può ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.