КомпьютерлерБағдарламалау

Java: InputStream. кіріс ағындары

Java, көптеген қазіргі заманғы программалау тілдері сияқты, деректерді енгізу ағынын іске асыруды қолдайды. Жылы Java InputStream яғни The базалық класс үшін байт ағындары. Осы сыныпқа біз оның данасын жасау мүмкін емес бағдарламасының барысында, яғни, дерексіз болып табылады. Алайда, IO пакеті мұра және InputStream функционалдығын кеңейту сынып жиынтығы бар. Егер код осы сыныпты пайдалану үшін, оны java.io.InputStream пакетін әкелінген тиіс. Келесі, біз InputStream класс қамтамасыз базалық функционалдық, және оны жүзеге асыру негізгі сыныптар қарастыру.

Әдістері класс InputStream

InputStream класс әдістерін егжей-тегжейлі зерттеу үшін қадамдарды орындамас бұрын, ол Жабылумүмкіндігі және AutoCloseable интерфейстерін жүзеге асырады атап өткен жөн. Интерфейс Жабылумүмкіндігі оның ағынының жұмыс аяқталған кезде міндетті жабық болуы керек екенін айтады. Бұл жақын () әдісі қолдану арқылы жүзеге асырылады. қате жағдайда InputStream сыныпты ең әдістері түрі IOException туралы ерекшелік жасайды, барлық операциялар блок реттен жүзеге асыруға қажетті, өйткені, ол дене реттен қарамастан жұмыс нәтижесінде жұмыс істеді, бұл, сайып келгенде, блок жасау үшін жақын () әдісі.

AutoCloseable интерфейс айтарлықтай азайтады The сомасы коды техникалық қызмет көрсету, өйткені ол мүмкіндік береді жақын () әдісі жұмыс автоматты түрде және Do емес қосу үшін коды, сайып келгенде, блок. Сіз Java жетінші немесе одан кейінгі нұсқасын пайдалансаңыз, бір InputStream ағынын жабу үшін барлық операциялар астам қабылдайды ресурстармен деп аталатын реттен орналастырылуы мүмкін.

InputStream класс негізгі әдістерін қарастырайық:

  • қол жетімді () INT - байт оқу санын қайтарады;
  • оқып INT () - ресурс ағымдағы байт алады және бүтін өкілдігі қайтарады; барлық байт, оқып, егер -1 қайтарылады;
  • оқып INT (байт [] буферлік) - буферлік (байт саны көрсетілген және қайтарады байт оқылған саны үлгерді және қолда бар барлық байт оқып, егер қайтарады -1 мөлшеріне тең буферін оқу) байт жиым түрі түрінде деді қол жетімді байт оқиды;
  • оқып (байт [] буферлік, байт INT санын есепке жатқызу INT) INT - алдыңғы әдісін тиеу, сол жасайды, бірақ көрсетілген «офсеттік» күйіне, ал «байт саны» жиынтығы ретінде көп оқиды бар;
  • ұзақ елемеу (ұзақ байт саны) - байт үзік-үзік саны мен жіберіп алған нақты санын қайтарады.

InputStream деректер әр түрлі көздері мен түрлері жұмыс істеуге арналған бірнеше сабақ жүзеге асырылады. Төменде мұралық жер ағаш көрсетеді.

оқу файлдар

файлдардан деректерді оқып байт ағыны класс FileInputStream жүзеге асырылады. дәлел ретінде оның конструктор файл атауын өтетін, класстың данасын жасау үшін жеткілікті оқу байт үшін файлды ашу үшін,. Файл аты ауысқан болса жоқ, ол түрі FileNotFoundException туралы ерекшелікті тастайды.

Істі табысты ашық файл, жұмыс бар солар асырылады жүзеге пайдалана отырып The әдістері сипатталған жоғарыда, СОЛ ҚАЛПЫНДА The мұрагері FileInputStream InputStream.

қарабайыр деректер түрлерін оқу

Жоғарыда келтірілген мысалда рәміздер ретінде түсіндіруге болады байт құндылықтарды, жұмысты сипаттайды. Бірақ біз бүтін сан, бөлшек немесе логикалық мәні оқып қажет болса ше? Үшін не істеу Бұл Java InputStream жанама кеңейеді The класс DataInputStream. Осы сыныпқа конструктор дәлел ретінде құру оған өткен InputStream, арналған орауыш болып табылады. жіп Мұндай екілік түрінде деректерді оқиды.

DataInputStream, сондай-ақ DataInput интерфейсін және қарабайыр деректер түрлерін оқу үшін оның әдістерін жүзеге асырады. Төменде осы әдістердің тізімі.

Әдісі атаулары айтады өздері - әр оларға есептелген оқуға ерекше түрлері деректер.

Буферлі енгізу ағыны

Буферлі ағыны деректер оқу Ява BufferedInputStream класс жүзеге асырылады. InputStream осы класы бойынша ағысын. Осы сыныпқа Егер бірнеше байт бірақ бір және сол уақытта оқуға мүмкіндік береді ағыны буферін аяқтайды. Бұл айтарлықтай жұмыс өнімділігін арттыру үшін мүмкіндік береді. BufferedInputStream ұрпағы InputStream жанама болып табылады және, осылайша, жоғарыда аталған барлық әдістерін иеленеді.

Осы сыныпқа екі құрылысшыларын бар:

  • BufferedInputStream (InputStream кіріс ағыны);
  • BufferedInputStream (InputStream кіріс ағыны, INT буферлік мөлшері)

Қолы The дизайнерлер аласыз мүмкін екенін түсіндік The бірінші жиынтығы The әдепкі буферлік мөлшері, және The екінші ол мүмкін жиынтығы, ол қолмен.

қорытынды

Біз InputStream негізгі асыруды қарастырды. Егер сіз) (жолына Java InputStream жылы жолына алынған байт түрлендіру керек болса, өкінішке орай, ол шамадан емес, сондықтан ол, арнайы құралдарды пайдалануға кітапхана Apache Commons мысалы IOUtils болады.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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