logo

Ток знакова наспрам бајтова у Јави

Ток је непрекидан ток података. У Јави И/О токови се користе за читање из улазних извора или уписивање на излазна одредишта као што су датотеке. Они пружају начин за секвенцијални приступ подацима. Пакет јава.ио укључује класе за руковање и токовима бајтова и знакова, као и за конверзију између њих.

  • Улазни ток: чита податке из извора. 
  • Излазни ток: уписује податке на одредиште. 

Када користити ток знакова преко бајтова:

У Јави знакови се чувају користећи Уницоде конвенције. Ток знакова је користан када желимо да обрадимо текстуалне датотеке. Ове текстуалне датотеке се могу обрадити карактер по карактер. Величина карактера је обично 16 бита.



Када користити бајт стрим преко стрима знакова:

Бајт оријентисан чита бајт по бајт. Стрим бајтова је погодан за обраду сирових података као што су бинарне датотеке.

Кључне тачке приликом коришћења и рада са било којим од горе наведених токова:

  • Класе тока знакова се обично завршавају са Реадер/Вритер док се класе токова бајтова завршавају са ИнпутСтреам/ОутпутСтреам.
  • Примери кодова у овом чланку користе токове без баферовања који су мање ефикасни. За боље перформансе обично их умотавамо у БуффередРеадер/БуффередВритер (токови знакова) или БуффередИнпутСтреам/БуффередОутпутСтреам (токови бајтова).
  • Увек затворите стримове након употребе да бисте ослободили ресурсе и спречили грешке.
  • Горе наведени кодови можда неће радити у компајлерима на мрежи јер датотеке можда не постоје.

Цхарацтер Стреам

У Јави знакови се чувају користећи Уницоде конвенције. Ток знакова нам аутоматски омогућава да читамо/пишемо податке знак по знак. На пример, ФилеРеадер и ФилеВритер су токови знакова који се користе за читање из извора и писање до одредишта.

укључују ц програмирање
нон_уницоде_битес' title=Цхарацтер Стреамс

Пример

Java
import java.io.*; public class GFG {  public static void main(String[] args)  throws IOException  {  // Initially assigning null as we have not read anything  FileReader sourceStream = null;  try {  // Reading from file  sourceStream = new FileReader('/Users/mayanksolanki/Desktop/demo.rtf');  // Reading sourcefile and writing content to target file character by character.  int temp;  // If there is content inside file than read  while ((temp = sourceStream.read()) != -1)  System.out.println((char)temp);    System.out.print('Program successfully executed');  }    finally {  if (sourceStream != null)  sourceStream.close();  }  } } 

Излаз:

Записује садржај у циљну датотеку знак по знак

Програм је успешно извршен

Бите Стреам

Ток бајтова у Јави је ток који рукује уносом и излазом сирових 8-битних бинарних података. Углавном се користи за читање и писање нетекстуалних података као што су слике, аудио видео или било која бинарна датотека. На пример ФилеИнпутСтреам се користи за читање из извора и ФилеОутпутСтреам за писање до одредишта.

Пример:

Java
import java.io.*; public class GFG {  public static void main(String[] args)  throws IOException  {  // Initially assigning null ot objects for reading and writing to file  FileInputStream sourceStream = null;  FileOutputStream targetStream = null;  try {  // Passing the files via local directory  sourceStream = new FileInputStream('/Users/mayanksolanki/Desktop/demo.rtf');  targetStream = new FileOutputStream('/Users/mayanksolanki/Desktop/democopy.rtf');  // Reading source file and writing content to file byte by byte  int temp;  // If there is content inside file than read  while ((temp = sourceStream.read()) != -1)  targetStream.write((byte)temp);    System.out.print('Program successfully executed');  }  // finally block that executes for sure where we are closing file connections to avoid memory leakage  finally {  if (sourceStream != null)  sourceStream.close();  if (targetStream != null)  targetStream.close();  }  } } 

Излаз:

Програм је успешно извршен

како поништити избор у гимп-у

Разлике између тока знакова и тока бајтова

АспецтЦхарацтер СтреамБите Стреам
Обрађени тип података16-битни Уницоде знакови (текст)8-битни необрађени подаци (бинарни)
Часови се завршавају саЧиталац / писацИнпутСтреам / ОутпутСтреам
Погодно заТекстуалне датотеке Уницоде подациСлике аудио видео бинарне датотеке
КонверзијаАутоматски претвара бајтове у знаковеНиједна конверзија не ради са сировим бајтовима
ПримериФилеРеадер ФилеВритерФилеИнпутСтреам ФилеОутпутСтреам

Повезани чланак

  • Јава ИО – Улаз/излаз у Јави са примерима