Cos'è un flusso e come funziona?

4

Come un flusso di dati in generale, questo può essere un flusso I / O o un flusso di memoria o un flusso di file o cosa no.

Capisco che si tratti di una sorta di flusso di byte, che puoi leggere per analizzare grandi quantità di dati, se necessario, ciò che non capisco comunque, è come funziona.

È possibile "perdere" i dati da uno stream se si inizia a leggerlo troppo tardi? o ti aspetta?

Un sacco di tutorial che trovo online dicono solo come usare uno stream, ma in realtà non si distingue per spiegare come funziona, un tutorial lo ha spiegato come un fiume, ma questo mi confonde di più; l'acqua che scorre nel fiume non aspetta, il che mi riporta nuovamente a; cosa succede se lo leggo troppo tardi?

Qualcuno può spiegarmi questo concetto?

    
posta Electric Coffee 17.02.2014 - 09:51
fonte

2 risposte

5

Il tratto distintivo di un flusso è che puoi consumarlo parte per parte. In genere, un'API di flusso ha metodi che offrono il blocco successivo, il byte successivo ecc. Del contenuto e li si chiama in un ciclo, interleaving dell'elaborazione con la lettura dei dati. L'opposto sarebbe un componente che ti consente di accedere al contenuto intero contemporaneamente, ad es. una primitiva API di file che ha solo un metodo simile a

  byte[] getContent()

Lo svantaggio dell'accesso ai dati non in streaming è che devi archiviare tutti i dati nella memoria in un momento o nell'altro, il che può essere proibitivo se ce n'è molto.

Come spiegato da Ratchet Freak, l'accesso in streaming non significa che non ti perderai nulla se inizi a leggere troppo tardi. Promette solo che è in linea di principio in grado di leggere i dati in incrementi anziché in una volta sola.

    
risposta data 17.02.2014 - 10:25
fonte
3

se è possibile perdere alcuni dati dipende dalla fonte dei dati;

  • se si avvia lo streaming di un file, questo verrà sempre avviato all'inizio del file e si potrà riavvolgere secondo necessità.
  • se stai effettuando lo streaming di un livestream in internet, inizierai a ricevere dati dal punto in cui ti connetti. e non aspetterà

puoi confrontarlo con l'ascolto dell'audio, puoi avviare / mettere in pausa / riavvolgere in qualsiasi punto desideri su un record LP / cassette / CD ma non puoi con le trasmissioni radio

    
risposta data 17.02.2014 - 10:07
fonte

Leggi altre domande sui tag