I motsetning til Java er mer spesialiserte inn gjenstander , lar en InputStream objektet du arbeider med byte - nivå data fra en gitt ressurs. Det er imidlertid bare i stand til å lese inn en statisk fil med data. Hvis du ønsker å bruke data fra en annen kjører Java prosjekt i en InputStream objekt , må du bruke et nettverk rammeverk for å hente dataene før lagring i InputStream . InputStream vs nettverkskontakter
Når du ønsker å hente data fra en løpende prosjekt inn i en InputStream objekt , må du først legge det innenfor rammen av nettverkskontakter. Ett av prosjektene fungerer som en server, der du implementere en ServerSocket objekt , som lytter etter innkommende tilkoblinger på en gitt maskin portnummer . Det andre prosjektet , kunden , skaper en stikkontakt som kan kobles til denne porten nummer og åpne en strøm .
Reading data
Når de to prosjektene etablere en tilkobling, de vil ta svinger går gjennom en forhåndsbestemt sekvens der ett program sender data frem og tilbake gjennom stikkontakten . Prosjektet sende data kan bruke gjenstander som PrintWriter å sende data gjennom kontakten , og den andre prosjektet bruker en BufferedReader objekt for å motta data . Du kan lagre disse dataene du mottar i en InputStream objekt ved forekomster en InputStreamReader objekt i BufferedReader din .
Feil
en rekke ting som kan gå galt når du skal overføre data mellom prosjekter over en socket-tilkobling . Ett prosjekt eller det andre kan plutselig mister nettverkstilkoblingen eller du kan ha en bug i din tilkobling koden . Hvis prosjektet støter på et problem når den prøver å sende eller motta data , vil det være ute av stand til å komme seg og vil krasje . Av denne grunn , krever Java deg å bruke "prøve" og " fange " uttalelser når du skriver socket operasjoner .
Closing Stream
Fra et teknisk ståsted , er det ingenting å holde deg fra å forlate en socket-tilkobling til et annet prosjekt åpent for hele varigheten av programmet. God programmering stil , derimot, tilsier at du lukker socket-tilkobling fra klientsiden med " . Lukke ( ) " objekt -metoden når du er ferdig med å overføre dine data . Dette frigjør ressurser din klient programmet bruker på å opprettholde kontakten , og er høflig til serveren som også vier prosessorkraft til kontakten så lenge det er åpent .