2011-01-24 30 views
6

Ben anında kaynaklarla bir çok şey yapmak gerekir: vb OSGi halinde dağıtma, kavanozlar ans savaşlarda içine paketlemek, Xsd/xml dokümanlar ayrıştırma bina ve java sınıfları derleme DB inatJava bellek içi dosya yapısı?

Kullandığım kitaplıkların/API'lerin çoğu, tüm bu ara görevleri bellekte gerçekleştirmeye izin verir, ancak yalnızca java.io.File ile çalışan bazı "özel" kitaplıklar vardır. Ve benim için hiçbir şey kalmadı ama Java EE ortamında iyi olmayan gerçek geçici dosyaları ve dizinleri kullanıyorum. java.io.File (benim gördüğüm gibi) düğümleri içeren bellek içi dosya yapısı için bir kitaplık/çözüm olması gerektiğine inanıyorum. Lütfen bilinen/benzer kütüphanelere bir bağlantı bırakın. Herhangi bir yorum kabul edilir.

Teşekkürler!

+0

http://stackoverflow.com/questions/578305/create-a-java-file-object-or-equivalent-using-a-byte-array-in- bellek- –

+0

@ Chris Thompson olmadan, göndermeden önce okudum. Bu gerçekten aynı imho değil. – Osw

+0

yeterince adil, şeylerin o tarafını kesin olarak görebiliyorum. Her iki durumda da, sorunuz iyi bir şey ve eğer bunu başarmak için bir şey olmasaydı şoke olurdum ... –

cevap

6

Aradığınızı bulmak için gideceğinize inanmıyorum. Java.io.File API'si, çeşitli şekillerde uygulanabilecek bir dosya sistemi soyutlaması sağlama amacıyla yazılmamıştır. Bazı FS işlemlerinde (sil ve mkdir gibi) yöntem ortaya çıkarsa da, temel okuma/yazma G/Ç işlemlerini gerçekleştirmez. Bu FileInputStream gibi diğer sınıflara bırakılmıştır. Bu, API açısından, bir File nesnesinin bir yoldan daha fazlası olmadığı anlamına gelir. Hiçbir şey soyutlanmamıştır. Sen sıkışmışsın.

+0

İyi atış. Java.io.File temel G/Ç işlemini gerçekleştirmediğinden emin misiniz? O zaman hiç şansım yok :( – Osw

+0

Eh, işte javadoc: http://download.oracle.com/javase/1.4.2/docs/api/java/io/File.html. Dosya sınıfı soyutlanıyorsa I/O operasyonlar, elbette ki orada olmayan getInputStream(), getOutputStream(), vb. Gibi yöntemleri görmeyi beklersiniz.Java'nın tanıtımından bu yana, diğerleri çeşitli yollarla uygulanabilecek gerçek dosya sistemi API'leri yazmışlardır, ancak bu sizin yararınıza yardımcı olmaz. –

+0

Sadece Dosya ve FileInputStream kaynaklarını inceledim. Haklısın, sıkıştım. – Osw

4

Bir seçenek RAM disk kullanmaktır. Programınız diski java.io.File ile kullanmayı düşünecektir, ancak gerçekten ana belleği kullanacaktır.

+0

+1. Ancak, bu yine de bir "Java EE" ortamına "iyi uyum sağlamamak" anlamına gelmez ... ne olursa olsun :) –

+0

@pst, Neden "Java EE" ortamına "iyi uymuyor"? Ana bilgisayar sistemi sadece ekstra bir FS sağlar. Dosyalarını okumak ve yazmak için bir yol kullanmalı; bellek içi FS de olabilir. – Jay

+0

@Jay, fikir için teşekkürler, ama ben yazılım soyutlama katmanı hakkında düşünürken biraz donanım/sistem şeyler. – Osw