Ho uno scenario in cui il mio processo Java riceverà un flusso di dati binari:
public class DataHandler {
public void handleData(DATA data) {
// TODO: Do something with data
}
}
Sto cercando di capire la corretta digitazione per DATA
. Potrei usare byte[]
:
public class DataHandler {
public void handleData(byte[] data) {
// TODO: Do something with data
}
}
O una ByteArrayInputStream
:
public class DataHandler {
public void handleData(ByteArrayInputStream dataStream) {
// TODO: Do something with dataStream
}
}
Per me, " ByteArrayInput
Stream
" implica un flusso continuo di dati che viene costantemente modificato. In base a ciò, sente come ByteArrayInputStream
è più adatto per il mio caso d'uso in quanto probabilmente aggiunge un po 'di campane e fischietti su un semplice' ole byte[]
. Ma poi vedo che il suo costruttore prende byte[]
e non ti permette di aggiungere più byte
s alla post-costruzione, il che potrebbe non fare necessariamente nulla per me in questo caso particolare.
Quindi le mie domande:
- Nel mio caso d'uso, ci sono dei benefici a
ByteArrayInputStream
rispetto abyte[]
? Perché perché no? Quali sono i fattori che guidano questa decisione (in generale)? - Esiste un modo migliore per rappresentare un vero flusso di dati che scorre (che alla fine arriva come byte) oltre ai metodi che ho consigliato qui?