Java'da bir InputStream'den Dosya Yolu/Adı nasıl edinilir?Dosya yolu/adından itibaren InputStream
cevap
üzerinde üreten kendi InputStream
'nu uygulayabilirsiniz. Bu mümkün değildir. (Java API'sında FileInputStream'den değil). FileInputStream
yapıcı herhangi bir alanda bu bilgileri saklamaz: soyutlama ve kapsülleme:
public FileInputStream(File file) throws FileNotFoundException {
String name = (file != null ? file.getPath() : null);
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkRead(name);
}
if (name == null) {
throw new NullPointerException();
}
fd = new FileDescriptor();
open(name);
}
InputStream
bir dosya veya yol olmadığından dolayı yapamazsınız. Verileri
iki önemli Nesneye Dayalı Tasarım ilkeleri ne istediğini yapıyor engelleyebilir.
- Özet belirli bir bağlamda kullanımı (daha ayrıntılı bilgi here) için gerekli olan tek detaylara sahip genel bir fikir tanımlama işlemidir. Bu durumda, bu soyutlama, baytlarının kaynağı ne olursa olsun, bayt sağlayabilen genel bir arabirim olan
InputStream
'dur. BirInputStream
'un soyutlanmasının bir dosya yolu kavramı yoktur; Bu sadeceInputStream
'un belirli uygulamaları ile ilgilidir. - Kapsülleme, bir sınıfın uygulama ayrıntılarını o sınıftaki kullanıcılardan/kullanıcılardan gizleme işlemidir. Bu özel durumda,
FileInputStream
, okunan dosyanın ayrıntılarını içerir, çünküInputStream
bilgisiyle bu kullanımla ilgili değildir.path
örnek alanı, enkapsüle edilmiş ve sınıfın kullanıcıları tarafından kullanılamaz.
bazı önemli sınırlamalar kabul etmeye istekli olup olmadığını o path
değişkene erişme mümkündür, Having. Temel olarak, InputStream
'un FileInputStream
örneğinin olup olmadığını kontrol edebilir ve eğer öyleyse, path
örnek alanını okumak için yansımayı kullanın. java.lang.Class
Java belgelerinde ve çevrimiçi ortamda kolayca keşfedilebildiğinden ve çoğu bağlamda gerçekten iyi bir şey yapamayacağından bu erişimin ayrıntılarını dışarıda bırakacağım. Soru, neden hakkında bir bağlam sağladığından, daha makul yaklaşımlar sunmak zordur.
- 1. InputStream
- 2. Zipping inputStream, InputStream dönen (hafızada hiçbir dosyası)
- 3. soketi, InputStream, soket, InputStream geçmek Nasıl faaliyetleri
- 4. XmlPullParser InputStream
- 5. Sadece dosya adı ayıkla FileItem adından itibaren
- 6. WebKitFormBoundary PHP itibaren Görüntü/Dosya Veri Alma
- 7. Kopyalama HTTP isteği inputStream
- 8. Nasıl InputStream sanal dosyaya dönüştürmek
- 9. Java'da bir InputStream okuma
- 10. Android OkHttp InputStream java.IOException.closed
- 11. Java InputStream verileri bekletir.
- 12. CSVReader ve InputStream
- 13. inputStream JSONObject nesnesi için - GSON
- 14. InputStream, ProcessBuilder ürününe nasıl yollanır
- 15. InputStream veya InputStreamReader'ı arabellemeli miyim?
- 16. InputStream (Resim) ile ByteArrayInputStream Dönüştürme
- 17. İlerleme raporlaması için InputStream veya Reader sarıcı
- 18. InputStream - Ağ değişiklikleri ile başa çıkmak
- 19. FSDataInputStream, ham InputStream ile nasıl oluşturulur?
- 20. retrofit 2.0b2: InputStream yanıttan nasıl alınır?
- 21. InputStream byte [] içine dönüştürmenin en etkin yolu?
- 22. Oku JAX-RS vücut inputStream iki kez
- 23. Java I/O - InputStream Nesnesini Yeniden Kullan
- 24. OMElement nesnesinden bir InputStream/io.Reader alın
- 25. Java'da InputStream/.getResourceAsStream (variableForTextFiles) için bir dosya tanımlamak için bir değişkeni nasıl kullanabilirim?
- 26. Dize başlangıcından itibaren ondalık ayırma
- 27. Ekran isminden itibaren enum değeri
- 28. : Raylar dernekler rehber itibaren ilişki
- 29. Doğumdan itibaren ondalık basamakları hesapla
- 30. Görüntü ve ses uzunluğundan itibaren FFmpeg videosu