Bu eğiticide, örnekler yardımıyla Java FileInputStream ve yöntemlerini öğreneceğiz.
FileInputStream
Sınıf java.io
paketinden dosyalarından (bayt) veri okumak için kullanılabilir.
InputStream
Soyut 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.FileInputStream
paketi 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
FileInputStream
Sınıf, farklı yöntemler için uygulamalar içinde mevcut içerir InputStream
sınıfı.
read () Yöntem
read()
- dosyadan tek bir bayt okurread(byte() array)
- baytları dosyadan okur ve belirtilen dizide depolarread(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,
- İlk
available()
olarak, dosya giriş akışındaki kullanılabilir bayt sayısını kontrol etmek için yöntemi kullanırız . - Daha sonra
read()
, dosya giriş akışından 3 bayt okumak için yöntemi 3 kez kullandık. - Ş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() | FileChannel giriş 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.