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
ByteArrayInputStreamrispetto 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?