Јава ИнпутСтреамРеадер (са примерима)

У овом упутству ћемо научити о Јави ИнпутСтреамРеадер и њеним методама уз помоћ примера.

InputStreamReaderКласа у java.ioпакету могу се користити за претварање података у бајтова у подацима у карактера.

Проширује апстрактну класу Reader.

InputStreamReaderКласа ради са другим улазним токовима. Такође је познат као мост између токова бајтова и токова знакова. То је зато што InputStreamReaderбајтови за читање из улазног тока читају се као знакови.

На пример, неким знаковима је потребно 2 бајта да се сачувају у складишту. За читање таквих података можемо користити читач улазног тока који заједно чита 2 бајта и претвара се у одговарајући знак.

Направите ИнпутСтреамРеадер

Да бисмо креирали InputStreamReader, прво морамо да увозимо java.io.InputStreamReaderпакет. Једном када увозимо пакет, ево како можемо створити читач улазног тока.

 // Creates an InputStream FileInputStream file = new FileInputStream(String path); // Creates an InputStreamReader InputStreamReader input = new InputStreamReader(file); 

У горњем примеру смо креирали InputStreamReaderименовани улаз заједно са FileInputStreamименованом датотеком.

Овде се подаци у датотеци чувају користећи неко подразумевано кодирање знакова.

Међутим, у датотеци такође можемо одредити тип кодирања знакова ( УТФ8 или УТФ16 ).

 // Creates an InputStreamReader specifying the character encoding InputStreamReader input = new InputStreamReader(file, Charset cs); 

Овде смо Charsetкласу користили за одређивање кодирања знакова у датотеци.

Методе ИнпутСтреамРеадер

InputStreamReaderКласа обезбеђује имплементација за различитим методама присутни у Readerкласи.

реад () Метода

  • read() - чита један лик из читача
  • read(char() array) - чита знакове из читача и складишти их у наведеном низу
  • read(char() array, int start, int length) - чита са читача број знакова једнак дужини и чува у наведеном низу почев од почетка

На пример, претпоставимо да имамо датотеку која се зове инпут.ткт са следећим садржајем.

 This is a line of text inside the file. 

Покушајмо да читамо ову датотеку помоћу InputStreamReader.

 import java.io.InputStreamReader; import java.io.FileInputStream; class Main ( public static void main(String() args) ( // Creates an array of character char() array = new char(100); try ( // Creates a FileInputStream FileInputStream file = new FileInputStream("input.txt"); // Creates an InputStreamReader InputStreamReader input = new InputStreamReader(file); // Reads characters from the file input.read(array); System.out.println("Data in the stream:"); System.out.println(array); // Closes the reader input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Оутпут

 Подаци у току: Ово је ред текста унутар датотеке. 

У горњем примеру направили смо читач улазног тока користећи ток улазних датотека. Читач улазног тока повезан је са датотеком инпут.ткт .

  FileInputStream file = new FileInputStream("input.txt"); InputStreamReader input = new InputStreamReader(file); 

За читање знакова из датотеке користили смо read()методу.

гетЕнцодинг () метода

getEncoding()Поступак се може користити за добијање тип кодирања који се користи за складиштење података у улазног сигнала. На пример,

 import java.io.InputStreamReader; import java.nio.charset.Charset; import java.io.FileInputStream; class Main ( public static void main(String() args) ( try ( // Creates a FileInputStream FileInputStream file = new FileInputStream("input.txt"); // Creates an InputStreamReader with default encoding InputStreamReader input1 = new InputStreamReader(file); // Creates an InputStreamReader specifying the encoding InputStreamReader input2 = new InputStreamReader(file, Charset.forName("UTF8")); // Returns the character encoding of the input stream System.out.println("Character encoding of input1: " + input1.getEncoding()); System.out.println("Character encoding of input2: " + input2.getEncoding()); // Closes the reader input1.close(); input2.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Оутпут

 Кодирање знакова улаза1: Цп1252 Кодирање знакова улаза2: УТФ8 

У горњем примеру створили смо 2 читача улазних токова под називом инпут1 и инпут2.

  • инпут1 не наводи кодирање знакова. Отуда getEncoding()метода враћа канонско име подразумеваног кодирања знакова.
  • инпут2 наводи кодирање знакова, УТФ8 . Стога getEncoding()метода враћа наведено кодирање знакова.

Напомена : Charset.forName()Методом смо одредили врсту кодирања знакова. Да бисте сазнали више, посетите Јава Цхарсет (званична Јава документација).

цлосе () Метода

Да бисмо затворили читач улазног тока, можемо користити close()методу. Једном када се close()метода позове, не можемо користити читач за читање података.

Остале методе ИнпутСтреамРеадер

Метод Опис
ready() проверава да ли је ток спреман за читање
mark() означите позицију у току до које су подаци прочитани
reset() враћа контролу на тачку у току где је постављена ознака

Да бисте сазнали више, посетите Јава ИнпутСтреамРеадер (званична Јава документација).

Занимљиви Чланци...