Java FileInputStream (Örneklerle)

Bu eğiticide, örnekler yardımıyla Java FileInputStream ve yöntemlerini öğreneceğiz.

FileInputStreamSınıf java.iopaketinden dosyalarından (bayt) veri okumak için kullanılabilir.

InputStreamSoyut sınıfı genişletir .

Öğrenmeden önce FileInputStream, Java Dosyaları hakkında bilgi sahibi olduğunuzdan emin olun.

FileInputStream oluşturun

Bir dosya giriş akışı oluşturmak için önce java.io.FileInputStreampaketi içe aktarmalıyız . Paketi içe aktardıktan sonra, Java'da bir dosya giriş akışını nasıl oluşturabileceğimizi burada bulabilirsiniz.

1. Dosyaya giden yolu kullanma

 FileInputStream input = new FileInputStream(stringPath); 

Burada, yol tarafından belirtilen dosyaya bağlanacak bir giriş akışı oluşturduk.

2. Dosyanın bir nesnesini kullanma

 FileInputStream input = new FileInputStream(File fileObject); 

Burada, ile belirtilen dosyaya bağlanacak bir girdi akışı oluşturduk fileObject.

FileInputStream Yöntemleri

FileInputStreamSınıf, farklı yöntemler için uygulamalar içinde mevcut içerir InputStreamsınıfı.

read () Yöntem

  • read() - dosyadan tek bir bayt okur
  • read(byte() array) - baytları dosyadan okur ve belirtilen dizide depolar
  • read(byte() array, int start, int length) - dosyadan uzunluğa eşit bayt sayısını okur ve konum başlangıcından başlayarak belirtilen dizide depolar

Aşağıdaki içeriğe sahip input.txt adında bir dosyamız olduğunu varsayalım .

 This is a line of text inside the file. 

Bu dosyayı kullanarak okumaya çalışalım FileInputStream.

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( FileInputStream input = new FileInputStream("input.txt"); System.out.println("Data in the file: "); // Reads the first byte int i = input.read(); while(i != -1) ( System.out.print((char)i); // Reads next byte from the file i = input.read(); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Çıktı

 Dosyadaki veriler: Bu, dosyanın içindeki bir metin satırıdır. 

Yukarıdaki örnekte, input adında bir dosya giriş akışı oluşturduk. Giriş akışı, input.txt dosyasıyla bağlantılıdır .

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

Dosyadan veri okumak read()için while döngüsünün içindeki yöntemi kullandık .

available () Yöntem

Mevcut bayt sayısını elde etmek için available()yöntemi kullanabiliriz . Örneğin,

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Returns the number of available bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 3 bytes from the file input.read(); input.read(); input.read(); // Returns the number of available bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Çıktı

 Başlangıçta mevcut bayt sayısı: 39 Sonda kullanılabilir bayt sayısı: 36 

Yukarıdaki örnekte,

  1. İlk available()olarak, dosya giriş akışındaki kullanılabilir bayt sayısını kontrol etmek için yöntemi kullanırız .
  2. Daha sonra read(), dosya giriş akışından 3 bayt okumak için yöntemi 3 kez kullandık.
  3. Şimdi, baytları okuduktan sonra, kullanılabilir baytları tekrar kontrol ettik. Bu sefer kullanılabilir bayt sayısı 3 azaldı.

skip () Yöntemi

Belirtilen bayt sayısını atmak ve atlamak için skip()yöntemi kullanabiliriz . Örneğin,

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Skips the 5 bytes input.skip(5); System.out.println("Input stream after skipping 5 bytes:"); // Reads the first byte int i = input.read(); while (i != -1) ( System.out.print((char) i); // Reads next byte from the file i = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Çıktı

 5 baytı atladıktan sonra Giriş Akışı: dosyanın içindeki bir metin satırıdır. 

Yukarıdaki örnekte, skip()dosya giriş akışından 5 baytlık veriyi atlamak için yöntemi kullandık . Bu nedenle, "Bu" metnini temsil eden baytlar , giriş akışından okunmaz.

close () Yöntem

Dosya giriş akışını kapatmak için close()yöntemi kullanabiliriz . Bir kez close()yöntemi olarak adlandırılır, veriler okuma giriş akışı kullanamaz.

Yukarıdaki tüm örneklerde, close()dosya giriş akışını kapatmak için yöntemi kullandık .

FileInputStream'in Diğer Yöntemleri

Yöntemler Açıklamalar
finalize() sağlar close()yöntemi olarak adlandırılır
getChannel() FileChannelgiriş akışıyla ilişkili nesneyi döndürür
getFD() giriş akışıyla ilişkili dosya tanımlayıcısını döndürür
mark() verinin okunduğu giriş akışındaki konumu işaretleyin
reset() denetimi giriş akışında işaretin ayarlandığı noktaya döndürür

Daha fazla bilgi edinmek için Java FileInputStream'i (resmi Java belgeleri) ziyaret edin.

Ilginç makaleler...