Sobes.tech
Junior — Middle

Bayt məlumatları ilə işləyən axınlar ilə fayl sistemindən istifadə edən axınlar arasındakı fərq nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Java-da axınlar (Streams) müxtəlif növlərdə olur və bayt məlumatları ilə işləyən axınlar ilə fayl sistemindən istifadə edən axınlar arasındakı fərqləri başa düşmək vacibdir.

  1. Bayt məlumat axınları (InputStream/OutputStream):

    • Xam baytlarla işləyir.
    • Şəkillər, audio, video və ya hər hansı ikili formatda faylların oxunması və yazılması üçün istifadə olunur.
    • Nümunələr: FileInputStream, BufferedInputStream, ByteArrayInputStream.
  2. Fayl sistemindən istifadə edən axınlar (Reader/Writer):

    • Simvollarla işləyir (mətn məlumatları).
    • Kodlaşdırmanı nəzərə alaraq mətn fayllarını oxuma və yazma üçün nəzərdə tutulmuşdur.
    • Nümunələr: FileReader, BufferedReader, FileWriter.

Əsas fərq odur ki, bayt axınları işlənməmiş baytlarla işləyir, simvol axınları isə simvollarla, bu da mətnlə işləməyi asanlaşdırır və kodlaşdırmaları nəzərə alır.

Bayt axını ilə faylın oxunması nümunəsi:

try (FileInputStream fis = new FileInputStream("file.bin")) {
    int data;
    while ((data = fis.read()) != -1) {
        // bayt data işlənməsi
    }
}

Simvol axını ilə faylın oxunması nümunəsi:

try (BufferedReader reader = new BufferedReader(new FileReader("file.txt"))) {
    String line;
    while ((line = reader.readLine()) != null) {
        // sətir line işlənməsi
    }
}

Buna görə, axın seçimi məlumatların növündən və tapşırıqdan asılıdır.