CyfrifiaduronRhaglennu

Java: InputStream. ffrydiau mewnbwn

Java, fel llawer o ieithoedd rhaglennu modern, yn cefnogi nentydd mewnbwn data ar waith. Yn Java InputStream yn y dosbarth sylfaen ar gyfer ffrydiau beit. Mae'r dosbarth hwn yn haniaethol, hynny yw, yn ystod y rhaglen ni allwn greu enghraifft o hynny. Fodd bynnag, mae pecyn io set o ddosbarthiadau sy'n etifeddu ac yn ymestyn y ymarferoldeb InputStream. I ddefnyddio'r dosbarth hwn yn eich cod, rhaid iddo gael ei fewnforio o becyn java.io.InputStream. Nesaf, rydym yn ystyried y swyddogaeth sylfaenol sy'n darparu dosbarth InputStream, a'r prif ddosbarthiadau sy'n ei weithredu.

Dulliau dosbarth InputStream

Cyn symud ymlaen i astudiaeth fanwl o'r dulliau dosbarth InputStream, dylid crybwyll fod yn gweithredu y gellir eu cau a AutoCloseable rhyngwynebau. Rhyngwyneb y gellir eu cau yn dweud wrthym fod yn rhaid wrth gwblhau'r gwaith gyda'r llif o reidrwydd yn cael ei gau. Gwneir hyn trwy ddefnyddio dull agos (). Gan fod y rhan fwyaf o ddulliau dosbarth InputStream mewn achos camgymeriad yn cynhyrchu math o eithriad IOException, yr holl weithrediadau sydd eu hangen i gynnal bloc cais a dull agos () yn olaf yn gwneud uned fel ei fod yn cael ei faglu gan ddibynnu ar y canlyniad llawdriniaeth i roi cynnig ar y corff.

AutoCloseable rhyngwyneb yn sylweddol lleihau faint o gynhaliaeth cod, gan ei fod yn caniatáu agos gwaith dull () yn awtomatig ac nid ydynt yn ychwanegu at eich cod bloc o'r diwedd. Os ydych yn defnyddio'r fersiwn seithfed neu'n hwyrach o Java, gall InputStream cael ei roi yn hyn a elwir yn cynnig gydag adnoddau sy'n holl weithrediadau i gau'r llif yn cymryd drosodd.

Ystyried y dulliau sylfaenol o ddosbarth InputStream:

  • int ar gael () - yn dychwelyd rhif darllen o'r bytes;
  • int darllen () - yn cymryd y beit presennol yr adnodd ac yn dychwelyd y gynrychiolaeth cyfanrif; os yw'r holl bytes darllen, -1 yn cael ei ddychwelyd;
  • int darllen (beit [] clustogi) - Darllen y bytes ddywedwyd yn gael byffer ar ffurf math array beit (nifer y bytes darllen byffer hafal i faint penodol ac yn dychwelyd y nifer o bytes darllen llwyddo ac os yw'r holl bytes sydd ar gael yn darllen, yn dychwelyd -1);
  • int darllen (beit [] byffer, int gwrthbwyso, rhif int o bytes) - gorlwyth y dull blaenorol, gwneud yr un peth, ond gyda "gwneud iawn" safle penodol ac yn darllen cymaint ag a bennwyd yn y "nifer y bytes";
  • sgip hir (cyfrif beit hir) - y nifer o sgipiau bytes ac yn dychwelyd y nifer gwirioneddol o golli.

InputStream cael ei weithredu nifer o ddosbarthiadau gynllunio i weithio gyda gwahanol ffynonellau a mathau o ddata. Isod yn dangos y goeden etifeddiaeth.

darllen ffeiliau

ffrwd Byte i ddarllen data o ffeiliau yn cael ei roi ar waith y dosbarth FileInputStream. I agor ffeil ar gyfer darllen beit, yn ddigon i greu achos y dosbarth, gan fynd at ei Constructor enw'r ffeil fel dadl. Os yw'r ffeil wedi ei drosglwyddo i'r enw yn bodoli, bydd yn taflu eithriad o FileNotFoundException fath.

Mewn achos llwyddiannus agor ffeil, gweithio gyda hwy yn cael ei wneud gan ddefnyddio'r dulliau a ddisgrifir uchod, fel yw olynydd FileInputStream InputStream.

Darllen mathau data cyntefig

Yn yr enghraifft uchod yn disgrifio'r gwaith gyda gwerthoedd beit, y gellir eu dehongli fel symbolau. Ond beth os bydd angen i ddarllen yn gyfanrif, ffracsiynol neu werth Boolean? Er mwyn gwneud hyn yn Java InputStream anuniongyrchol yn ehangu DataInputStream dosbarth. Mae'r dosbarth hwn yn lapio am InputStream, sy'n cael ei basio iddo ar greu fel dadl Constructor. Mae'r math hwn o edau yn darllen y data ar ffurf ddeuaidd.

DataInputStream hefyd yn gweithredu rhyngwyneb DataInput a'i ddulliau o ddarllen mathau data cyntefig. Isod ceir rhestr o'r dulliau hyn.

Enwau Dull siarad drostynt eu hunain - pob un ohonynt yn cael ei gynllunio i ddarllen math data penodol.

ffrwd mewnbwn buffered

Buffered darllen data llif yn cael ei wireddu dosbarth BufferedInputStream yn Java. InputStream ei lapio gan y dosbarth hwn. Mae'r dosbarth hwn yn ategu'r llif byffer, sy'n eich galluogi i ddarllen ar yr un pryd nid un ond mae sawl bytes. Mae hyn yn ei gwneud yn bosibl i wella perfformiad y llawdriniaeth yn sylweddol. BufferedInputStream ddisgynnydd InputStream yn anuniongyrchol ac felly etifeddu yr holl ddulliau a grybwyllwyd uchod.

Mae gan y dosbarth hwn ddwy adeiladwyr:

  • BufferedInputStream (ffrwd mewnbwn InputStream);
  • BufferedInputStream (nant mewnbwn InputStream, clustogi int maint)

Gall llofnod y dylunwyr yn cael eu deall bod y cyntaf yn gosod y maint byffer diofyn, ac yn yr ail, mae'n bosibl gosod ei llaw.

casgliad

Adolygwyd y sylweddoliad sylfaenol InputStream. Os oes angen i drosi'r bytes dderbyniad i'r llinyn yn Java InputStream i Llinynnol (), yn anffodus, nid yn gorlwytho, felly bydd yn rhaid i ni ddefnyddio offer arbennig, ee IOUtils o lyfrgell Apache Cyffredin.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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