Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    grazie andbin, devo specificare 2 cose:
    1)lavoro in android e vado a caricare il mio file da un url web, e il processo è gestito da una libreria che crea un thread a parte e lavora in modo asincrono è per questo che ho pensato al thread safe, o non centra nulla comunque?
    La libreria l'ho postata nel thread preecedente
    2)il file puo arrivare ad essere anche 20MB e di questo file devo fare un parsing come posso fare tutto nel modo piu sicuro possibile?al limite anche salvando il file e riaprendolo; E' meglio spezzare la lettura in blocchi di stringhe e fare il pharsing di questo? devo infatti ricercare delle sottostringhe nel file, le sottostringhe sono di questo genere : (è il dump di solo dati di un db mysql)

    insert into(a,b,c) values(1,2,3);
    insert into(a,b,c) values(4,5,6);
    insert into(a,b,c) values(7,8,9);


    3)alla fine forse la cosa migliore è leggere il file linea per linea , o c'è qualcosa di possibilmente piu veloce?

    grazie.
    ps.
    in questo modo funziona:
    codice:
         Reader      reader      = new InputStreamReader(zin, "UTF-8");
                      
                      int data = reader.read();
                      while(data != -1){
                          buff.append((char) data);
                          data = reader.read();
                      }
    
                      String str = buff.toString();
    ma è estremamente lento.
    ciao.

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da giuseppe500 Visualizza il messaggio
    1)lavoro in android e vado a caricare il mio file da un url web, e il processo è gestito da una libreria che crea un thread a parte e lavora in modo asincrono è per questo che ho pensato al thread safe, o non centra nulla comunque?
    La libreria l'ho postata nel thread preecedente
    Non centra comunque nulla. Come ho detto prima, il tuo StringBuffer è una variabile locale, se anche più thread eseguissero quel tuo pezzo di codice, ogni thread avrebbe il suo StringBuffer. Non c'è condivisione = nessun problema di concorrenza.
    Tra StringBuffer e StringBuilder ti conviene però quest'ultimo. E ripeto, non per problemi di "concorrenza" ma perché la istanza di StringBuffer pur essendo usata da un solo thread, richiede comunque l'acquisizione di un "lock" (StringBuffer è synchronized) mentre StringBuilder no.

    Quote Originariamente inviata da giuseppe500 Visualizza il messaggio
    2)il file puo arrivare ad essere anche 20MB e di questo file devo fare un parsing come posso fare tutto nel modo piu sicuro possibile?al limite anche salvando il file e riaprendolo; E' meglio spezzare la lettura in blocchi di stringhe e fare il pharsing di questo? devo infatti ricercare delle sottostringhe nel file, le sottostringhe sono di questo genere : (è il dump di solo dati di un db mysql)

    insert into(a,b,c) values(1,2,3);
    insert into(a,b,c) values(4,5,6);
    insert into(a,b,c) values(7,8,9);


    3)alla fine forse la cosa migliore è leggere il file linea per linea , o c'è qualcosa di possibilmente piu veloce?

    grazie.
    ps.
    in questo modo funziona:
    codice:
         Reader      reader      = new InputStreamReader(zin, "UTF-8");
                      
                      int data = reader.read();
                      while(data != -1){
                          buff.append((char) data);
                          data = reader.read();
                      }
    
                      String str = buff.toString();
    ma è estremamente lento.
    Io infatti avevo detto "leggere a blocchi di char e buttarli nel StringBuffer". Non 1 char per volta (che ovviamente è molto meno performante).

    Comunque se devi fare il parsing di ciascuna riga per volta (cioè non c'è una qualche connessione tra più righe), allora leggi "a righe":
    zin -> InputStreamReader -> BufferedReader
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826
    capito, grazie.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.