logo

Rakstzīmju straume vs baitu straume Java

Straume ir nepārtraukta datu plūsma. Java I/O straumes tiek izmantotas, lai lasītu no ievades avotiem vai rakstītu uz izvades galamērķiem, piemēram, failiem. Tie nodrošina veidu, kā secīgi piekļūt datiem. Java.io pakotnē ir iekļautas klases gan baitu, gan rakstzīmju straumju apstrādei, kā arī konvertēšanai starp tām.

css komentārs
  • Ievades straume: nolasa datus no avota. 
  • Izvades straume: ieraksta datus galamērķim. 

Kad izmantot rakstzīmju straumi, izmantojot baitu straumi:

Java valodā rakstzīmes tiek saglabātas, izmantojot Unikoda konvencijas. Rakstzīmju straume ir noderīga, ja vēlamies apstrādāt teksta failus. Šos teksta failus var apstrādāt pēc rakstzīmes. Rakstzīmju lielums parasti ir 16 biti.



Kad izmantot baitu straumi pār rakstzīmju straumi:

Orientēts uz baitu, nolasa baitu pa baitam. Baitu straume ir piemērota neapstrādātu datu, piemēram, bināro failu, apstrādei.

Galvenie punkti, lietojot un strādājot ar kādu no iepriekš minētajām straumēm:

  • Rakstzīmju straumes klases parasti beidzas ar Reader/Writer, savukārt baitu straumes klases beidzas ar InputStream/OutputStream.
  • Šajā rakstā minētie kodu piemēri izmanto nebuferētas straumes, kas ir mazāk efektīvas. Lai nodrošinātu labāku veiktspēju, mēs tos parasti iesaiņojam ar BufferedReader/BufferedWriter (rakstzīmju straumes) vai BufferedInputStream/BufferedOutputStream (baitu straumes).
  • Pēc lietošanas vienmēr aizveriet straumes, lai atbrīvotu resursus un novērstu kļūdas.
  • Iepriekš minētie kodi var nedarboties tiešsaistes kompilatoros, jo faili var nepastāvēt.

Rakstzīmju straume

Java valodā rakstzīmes tiek saglabātas, izmantojot Unikoda konvencijas. Rakstzīmju straume automātiski ļauj mums lasīt/rakstīt datus pa rakstzīmi. Piemēram, FileReader un FileWriter ir rakstzīmju straumes, ko izmanto, lai lasītu no avota un rakstītu uz galamērķi.

non_unicode_bytes' title=Rakstzīmju straumes

Piemērs

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();  }  } } 

Izvade:

Ieraksta saturu mērķa failā pēc rakstzīmes

Programma veiksmīgi izpildīta

arraylist.sort

Baitu straume

Java baitu straume ir straume, kas apstrādā neapstrādātu 8 bitu bināro datu ievadi un izvadi. To galvenokārt izmanto, lai lasītu un rakstītu neteksta datus, piemēram, attēlus, audio un video vai jebkuru bināro failu. Piemēram FileInputStream tiek izmantots, lai lasītu no avota un FileOutputStream, lai rakstītu uz galamērķi.

Piemērs:

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();  }  } } 

Izvade:

Programma veiksmīgi izpildīta

Rakstzīmju straumes un baitu straumes atšķirības

AspektsRakstzīmju straumeBaitu straume
Apstrādātais datu tips16 bitu unikoda rakstzīmes (teksts)8 bitu neapstrādāti dati (bināri)
Nodarbības beidzas arLasītājs / rakstnieksInputStream / OutputStream
PiemērotsTeksta faili Unikoda datiAttēli audio video binārie faili
PārvēršanaAutomātiski pārvērš baitus par rakstzīmēmNeviena konvertēšana nedarbojas ar neapstrādātiem baitiem
PiemēriFileReader FileWriterFileInputStream FileOutputStream

Saistīts raksts

  • Java IO — ievade/izvade Java ar piemēriem