Gillar Javas mer specialiserade insatsvaror objekt , låter en InputStream objekt du arbetar med byte - nivå data från en given resurs . Det är emellertid endast i stånd att läsa i en statisk fil av data. Om du vill använda data från en annan kör Java-projekt i ett InputStream objekt , måste du använda ett nätverk ram för att hämta data innan du förvarar den i InputStream . InputStream vs nätverksuttag
När du vill hämta data från ett pågående projekt i ett InputStream objekt , måste du först visa det inom ramen för nätverksuttag . Ett av projekten fungerar som en server , där du genomför en ServerSocket objekt , som lyssnar efter inkommande anslutningar på en viss maskin portnummer . Det andra projektet , kunden , skapar en socket som ska ansluta till detta portnummer och öppna en bäck .
Läsa data
När de två projekten upprätta en anslutning , de kommer att turas går igenom en förutbestämd sekvens varigenom ett program skickar data fram och tillbaka genom uttaget. I projektet skicka data kan använda föremål såsom PrintWriter att sända data via kontakten , och den andra projektet använder en BufferedReader objekt som tar emot data. Du kan lagra den data som du får i ett InputStream objekt genom att exemplifiera en InputStreamReader objekt i din BufferedReader .
Fel
Valfritt antal saker kan gå fel när du överför data mellan projekt över en socket anslutning . Ett projekt eller den andra kan plötsligt förlora nätverksanslutning eller du kan ha en bugg i din uppkoppling koden . Om ditt projekt stöter på ett problem när man försöker skicka eller ta emot data , kommer det inte att kunna återhämta sig och kommer att krascha . Av denna anledning , kräver Java du använder " försöka " och " fånga " uttalanden när du skriver socket operationer .
Utgående Stream
Ur teknisk synvinkel , det finns inget att hålla dig från att lämna en socket anslutning till ett annat projekt är öppet för hela den tid av ditt program . Bra programmering stil , men säger att du stänger socketanslutningen från klientsidan med " . Nära ( ) " objektet metod när du är klar att sända data . Detta frigör resurser ditt klientprogram spenderar på att behålla fattningen , och är tillmötesgående mot den server som också ägnar processorkraft till uttaget så länge det är öppet .