BilgisayarlarProgramlama

Java: inputStream. giriş akımları

Java, birçok modern programlama dilleri gibi, veri giriş akışlarının uygulanmasını desteklemektedir. Java'da inputStream bayt akışları için temel sınıftır. Bu sınıf, programın akışı içinde bunun bir örneğini oluşturamazsınız olduğunu, soyut. Ancak, io paket miras ve InputStream işlevselliğini genişletmek sınıfları kümesi vardır. kodunuzda bu sınıfı kullanmak için, java.io.InputStream paketten ithal edilmelidir. Sonra, bir inputStream sınıfı sağlar temel işlevsellik ve bunu uygulamaya ana sınıflarını düşünün.

InputStream sınıf yöntemleri

InputStream sınıfı yöntemlerinin ayrıntılı bir çalışma geçmeden önce, o Kapatılabilir ve AutoCloseable arabirimleri uygulayan söz edilmelidir. Arayüz Kapatılabilir bunun akışıyla işin bitiminde mutlaka kapalı olmalıdır söyler. Bu yöntem, yakın kullanılarak yapılır (). Bir hata durumunda inputStream sınıfının en yöntemleri tip IOException bir durum oluşturur, çünkü gerekli tüm işlemler blok denemede yürütmek ve yakın () yöntemi vücut denemede işin sonucunun ne olursa olsun çalıştı, nihayet bloğu yapmak.

otomatik yakın () yöntemi bir çalışma sağlar ve son olarak engellemek Kodunuza katmayan beri AutoCloseable arayüzü önemli kod bakım miktarını azaltır. Eğer Java yedinci veya sonraki bir sürümünü kullanıyorsanız, bir inputStream tüm işlemler akış devraldı kapatmak için kaynakları ile sözde denemede yerleştirilebilir.

InputStream sınıfının temel yöntemlerini göz önünde bulundurun:

  • Mevcut int () - bayt bir okuma sayısını verir;
  • , Kaynağın mevcut bayt alır ve tamsayı sunumunu verir - int () oku Tüm bayt okumak, -1 döndürülür;
  • ; Bayt kullanılabilir bir bayt dizisi şeklinde ve, söz konusu tamponu okur (bayt sayısı boyutuna belirtilen eşit tampon okuma ve bayt sayısı başarılı okuma verir ve mevcut tüm bayt okumak, -1 döner) - int (byte [] tamponu) oku
  • , Önceki yöntemin aşırı yük, aynı, ama belirli bir "ofset" konumu ile ve "bayt sayısı" ayarlanır kadar okur - int (byte [] tamponu, ofset int bayt int sayı) oku
  • Uzun atlama (uzun bayt sayısı) - bayt atlama sayısı ve cevapsız gerçek sayısını verir.

InputStream farklı kaynaklardan ve veri tipleri ile çalışmak üzere tasarlanmış çeşitli sınıfları uygulanmaktadır. Aşağıda kalıtım ağacını gösterir.

dosyaları okuma

Bayt akışı sınıfı FileInputStream uygulanmaktadır dosyalarından veri okumak için. bağımsız değişken olarak onun kurucusuna dosya adı geçen sınıfının bir örneğini oluşturmak için yeterli bayt okuma için bir dosya açın. dosya yok isim transfer edilirse, tip FileNotFoundException bir özel durum oluşturur.

Başarılı bir açık bir dosyanın durumunda, onlarla iş halefi FileInputStream inputStream olduğu gibi, yukarıda açıklanan yöntemler kullanılarak gerçekleştirilir.

Temel veri türlerini okuma

Yukarıdaki örnekte, semboller olarak yorumlanabilir bayt değerleri ile çalışma açıklanmaktadır. Ama biz fraksiyonel bir tamsayı veya bir Boole değeri okumak ne gerekirse? Java InputStream bunu yapmak için dolaylı sınıf DataInputStream genişletir. Bu sınıf, bir yapıcı bağımsız değişken olarak oluşturulmasını kendisine iletilen InputStream için bir sarıcı. iplik Bu tür ikili biçimde veri okur.

DataInputStream da DataINput arayüzü ve temel veri türleri okumak için kendi yöntemleri uygular. Aşağıda isimli bir liste bu yöntemleri.

Yöntem isimleri kendileri için konuşmak - her biri belli bir veri türü okumak için tasarlanmıştır.

Tamponlu giriş akışı

Tamponlu akışı veri okuma Java BufferedInputStream sınıfını gerçekleştirilmiştir. InputStream Bu sınıf tarafından sarılır. Bu sınıf aynı anda birkaç bayt ancak birini okumak için izin tampon akışını tamamlar. Bu önemli ölçüde operasyonun performansını artırmak için mümkün kılar. BufferedInputStream soyundan inputStream dolaylı ve bu nedenle, yukarıda sözü edilen tüm yöntemler devralır.

Bu sınıf iki oluşturucusu yok:

  • BufferedInputStream (inputStream giriş akımı);
  • BufferedInputStream (inputStream giriş akışı, int tampon boyutu)

tasarımcıların imzası ilk varsayılan tampon boyutunu teşkil ettiği anlaşılabilir ve ikincisinde de elle ayarlamak mümkündür.

Sonuç

Biz InputStream temel gerçekleşmesini gözden geçirdi. Eğer dize () Java InputStream bir dize Alınan bayt dönüştürmek gerekiyorsa o Apache Commons kütüphaneden özel örn araçları IOUtils kullanmak zorunda böylece maalesef, aşırı değildir.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 tr.atomiyme.com. Theme powered by WordPress.