КомпютриПрограмиране

Java: InputStream. входните потоци

Java, като много от съвременните езици за програмиране, подкрепя прилагането на входни данни потоци. В Java InputStream е базов клас за байтове потоци. Този клас е абстрактно, а именно, в хода на програмата не можем да се създаде копие на него. Въпреки това, IO пакет има набор от класове, които наследяват и разширяване на функционалността на InputStream. За да използвате този клас в кода си, той трябва да бъде внесен от java.io.InputStream пакет. На следващо място, считаме, че основната функционалност, която предоставя клас InputStream и основните класове, които го прилагат.

методи InputStream клас

Преди да се пристъпи към подробно изследване на методите на класа InputStream, трябва да се спомене, че изпълнява интерфейсите и затваряща AutoCloseable. Интерфейс затваряща ни казва, че при приключване на работата с потока от него трябва задължително да бъдат затворени. Това се извършва чрез метод близо (). Тъй като повечето от методите InputStream класа в случай на грешка генерира тип изключение IOException, всички операции, необходими за провеждане на опита блок и метод близо () най-накрая направи единица, така че да не е сработил в зависимост от резултата от операция, за да се опита орган.

AutoCloseable интерфейс значително намалява размера на издръжката код, тъй като той позволява близо () метод на работа автоматично и не добавите към своя код накрая блокира. Ако използвате седмия или по-новата версия на Java, за InputStream могат да бъдат поставени в така наречения опит с ресурси, които всички операции за затваряне на потока надделява.

Помислете за основните методи за InputStream клас:

  • вътр достъпно () - връща за четене брой байтове;
  • вътр чете () - отнема текущата байт на ресурса и връща целочислено представяне; ако всички байта четат, -1 се връща;
  • Int чете (байт [] буфер) - Следи байтовете на разположение в споменатите буфер под формата на тип масив от байтове (брой байтове за четене буфер равен на размера посочен и връща броя на байтовете чете успя и ако всички налични байта четат връща -1);
  • Int чете (байт [] буфер, Int офсет, Int брой байтове) - претоварване на предишния метод, прави същото, но с определен "отместване" позиция и чете колкото е определен в "брой байтове";
  • дълго прескачане (дълго Брой байтове) - броят на байта прескача и се връща на действителния брой на пропуска.

InputStream се изпълнява няколко класа, предназначени за работа с различни източници и видове данни. По-долу показва наследството дървото.

четене на файлове

Байт поток за четене на данни от файлове се изпълняват клас FileInputStream. За да отворите файл за четене на байтове, което е достатъчно, за да се създаде инстанция на класа, преминавайки към своя конструктор името на файла като аргумент. Ако файлът се прехвърля на името не съществува, тя ще хвърли изключение от тип FileNotFoundException.

В случай на успешно отворен файл, работа с тях се извършва с помощта на методите, описани по-горе, като е наследник FileInputStream InputStream.

Четене примитивни типове данни

В горния пример описва работата с байтови стойности, които могат да се тълкува като символи. Но какво, ако ние трябва да се чете цяло число, частична или булева стойност? За да направите това в Java InputStream косвено разширява клас DataInputStream. Този клас е обвивка за InputStream, която се предава към него при създаване като аргумент конструктор. Този вид конец чете данните в двоичен вид.

DataInputStream също реализира интерфейса вложени материали и неговите методи за четене на примитивни типове данни. По-долу е даден списък на тези методи.

името на метод говорят сами за себе - всеки един от тях е предназначена за четене на определен тип данни.

Буфериран входен поток

Стабилизиращ поток четене на данни се осъществява BufferedInputStream клас в Java. InputStream е обвито от този клас. Този клас допълва поток буфер, което ви позволява да се чете в същото време не една, а няколко байта. Това дава възможност значително да се подобри ефективността на работата. BufferedInputStream потомък InputStream е косвен и по този начин наследява всички методи, посочени по-горе.

Този клас има два конструктора:

  • BufferedInputStream (InputStream входен поток);
  • BufferedInputStream (InputStream входен поток, Int буфер размер)

Подпис на дизайнерите да се разбере, че първият определя размера на буфера подразбиране, а във втория е възможно да го зададете ръчно.

заключение

Ние прегледахме основната реализация на InputStream. Ако трябва да конвертирате получените байтове в низ в Java InputStream да String (), за съжаление, не е претоварена, така че ще трябва да се използват специални инструменти, напр IOUtils от Apache Commons библиотека.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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