KompyutaProgramu

Java: InputStream. pembejeo mito

Java, kama lugha nyingi za kisasa programu, mkono utekelezaji wa mito data pembejeo. Katika Java InputStream ni darasa msingi kwa ajili ya byte mito. Darasa hili ni dhahania, yaani, wakati wa mpango hatuwezi kuunda mfano wa hayo. Hata hivyo, io mfuko kina seti ya madarasa kwamba kurithi na kupanua utendaji wa InputStream. Kutumia darasa hili katika kanuni yako, ni lazima kuletwa kutoka java.io.InputStream mfuko. Next, tunaona utendaji wa msingi ambayo hutoa darasa InputStream, na madarasa kuu kwamba kutekeleza.

mbinu InputStream darasa

Kabla ya kuendelea na utafiti wa kina wa mbinu InputStream darasa, ni lazima alieleza kuwa kutekeleza Closeable na AutoCloseable interfaces. Interface Closeable inatuambia kwamba katika kukamilisha kazi na mtiririko wa ni lazima lazima kuwa imefungwa. Hii inafanyika kwa kutumia njia ya karibu (). Kwa kuwa wengi wa mbinu InputStream darasa katika kesi ya makosa inazalisha ubaguzi aina IOException, shughuli zote zinazohitajika kuendesha kujaribu kuzuia na njia karibu () hatimaye kufanya kitengo ili ni tripped kulingana na matokeo ya kazi ya kujaribu mwili.

AutoCloseable interface kwa kiasi kikubwa hupunguza kiasi cha matengenezo code, kwani inaruhusu karibu () njia ya kazi moja kwa moja na wala kuongeza nambari yako hatimaye kuzuia. Ukitumia saba au baadaye toleo la Java, InputStream yanaweza kuwekwa katika iliyoitwa kujaribu na rasilimali ambayo shughuli zote kwa karibu kati yake inachukua zaidi.

Fikiria njia ya msingi ya InputStream darasa:

  • int inapatikana () - anarudi kusoma idadi ya ka;
  • int kusomwa () - inachukua byte ya sasa ya rasilimali na anarudi integer uwakilishi; kama ka kila kusoma, -1 ni kurudi;
  • int kusomwa (Byte [] bafa) - Anasoma ka inapatikana katika alisema bafa katika mfumo wa aina Byte safu (idadi ya ka kusoma buffer sawa na ukubwa maalum na kurejesha idadi ya ka kusoma wamefanikiwa na kama ka zote zilizopo kusoma, anarudi -1);
  • int kusomwa (Byte [] buffer, int kukabiliana, int idadi ya ka) - overload ya njia ya awali, gani huo, lakini kwa maalum "kukabiliana" nafasi na anayesoma kama vile kuweka katika "idadi ya ka";
  • muda skip (long Byte kuhesabu) - Idadi ya skips ka na kurejesha idadi halisi ya amekosa.

InputStream inatekelezwa madarasa kadhaa iliyoundwa kufanya kazi na vyanzo mbalimbali na aina ya data. Hapa chini linaonyesha urithi miti.

kusoma faili

Byte mkondo kusoma data kutoka files inatekelezwa darasa FileInputStream. file Kufungua kwa ajili ya kusoma ka, kutosha kujenga mfano wa darasa, kupita kwa kuujenga faili yake jina kama hoja. Kama faili ni kuhamishwa na jina haipo, itakuwa kutupa ubaguzi wa aina FileNotFoundException.

Kwa upande wa mafanikio kufungua faili, kazi pamoja nao unafanywa kwa kutumia mbinu ilivyoelezwa hapo juu, kama ni mrithi FileInputStream InputStream.

Kusoma aina primitive data

Katika mfano hapo juu inaeleza kazi na maadili Byte, ambayo inaweza kufasiriwa kama alama. Lakini nini kama tunahitaji kusoma integer, fractional au thamani Boolean? Ili kufanya hivyo katika Java InputStream kwa moja expands darasa DataInputStream. Darasa hili ni kanga kwa InputStream, ambayo ni kupita hiyo wakati wa kuunda kama hoja kuujenga. Aina hii ya thread inasema data katika miundo.

DataInputStream pia zana DataInput interface na njia yake kwa ajili ya kusoma aina primitive data. Chini ni orodha ya njia hizi.

majina Method kuzungumza wenyewe - kila mmoja wao ni iliyoundwa kwa kusoma baadhi ya aina ya data.

Buffered pembejeo mkondo

Buffered mkondo data kusoma ni barabara BufferedInputStream darasa katika Java. InputStream hufungwa na darasa hili. Darasa hili mchango bafa mkondo, kuruhusu wewe kusoma kwa wakati mmoja si moja lakini ka kadhaa. Hii inafanya kuwa inawezekana kwa kiasi kikubwa kuboresha utendaji wa kazi. BufferedInputStream ukoo InputStream ni moja kwa moja na hivyo hurithi mbinu zote zilizotajwa hapo juu.

Darasa hili ina constructors mbili:

  • BufferedInputStream (InputStream pembejeo mkondo);
  • BufferedInputStream (InputStream pembejeo mkondo, int bafa kawaida)

Sahihi ya wabunifu inaweza kueleweka kuwa ya kwanza huweka default bafa kawaida, na katika pili inawezekana kuweka wewe mwenyewe.

hitimisho

Sisi upya utambuzi wa msingi wa InputStream. Kama unahitaji kubadilisha ka uliopokelewa hadi kamba katika Java InputStream kwa Kamba (), kwa bahati mbaya, si overloaded, hivyo itakuwa na kutumia zana maalum, kwa mfano IOUtils kutoka Apache Commons maktaba.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 sw.atomiyme.com. Theme powered by WordPress.