Java ingresso flusso da un progetto

March 20

Java ingresso flusso da un progetto


A differenza di oggetti di input più specializzate di Java, un oggetto InputStream consente di lavorare con i dati a livello di byte da una data risorsa. È, tuttavia, solo in grado di leggere in un file di dati statici. Se si desidera utilizzare i dati da un altro progetto Java in esecuzione in un oggetto InputStream, è necessario utilizzare un framework di rete per recuperare i dati prima di riporla nel InputStream.

InputStream vs socket di rete

Quando si desidera ottenere i dati di un progetto in corso in un oggetto InputStream, è necessario prima di incorporarlo in un quadro di socket di rete. Uno dei progetti agisce come un server, in cui si implementa un oggetto ServerSocket, che ascolto per le connessioni in entrata su un determinato numero di porta della macchina. L'altro progetto, il cliente, crea un socket che si collega a questo numero di porta e aprire un ruscello.

I dati di lettura

Una volta che i due progetti di stabilire una connessione, che si alterneranno che passano attraverso una sequenza predeterminata per cui un programma invia i dati avanti e indietro attraverso la presa. I dati di progetto possono utilizzare l'invio di oggetti come PrintWriter per inviare i dati attraverso la presa, e l'altro progetto utilizza un oggetto BufferedReader per ricevere i dati. È possibile memorizzare i dati si ricevono in un oggetto InputStream istanziando un oggetto InputStreamReader all'interno BufferedReader.

Errori

Qualsiasi numero di cose possono andare male quando si stanno trasferendo i dati tra i progetti su una connessione socket. Un progetto o l'altro potrebbe perdere improvvisamente la connettività di rete o si potrebbe avere un bug nel codice di connettività. Se il progetto incontra un problema quando si sta tentando di inviare o ricevere dati, sarà in grado di recuperare e andrà in crash. Per questo motivo, Java richiede l'uso di "provare" e le dichiarazioni "catturare" ogni volta che si sta scrivendo le operazioni di socket.

Chiusura stream

Dal punto di vista tecnico, non c'è nulla per impedirti di lasciare una connessione socket a un altro progetto aperto per tutta la durata del programma. Buono stile di programmazione, tuttavia, impone che si chiude la connessione socket dal lato client con il ".close ()" metodo oggetto una volta aver completato la trasmissione dei dati. Questo consente di liberare le risorse tuo programma client è la spesa per mantenere la presa, ed è cortese al server che dedica anche potenza di elaborazione per la presa fino a quando è aperta.