okuma varlıkların dosya
public class Utils {
public static List<Message> getMessages() {
//File file = new File("file:///android_asset/helloworld.txt");
AssetManager assetManager = getAssets();
InputStream ims = assetManager.open("helloworld.txt");
}
}
Varlıkların bu kod, bir dosyayı okumaya çalışıyorum kullanıyorum. Bunu yapmanın iki yolu denedim. File
İlk, AssetManager getAssets()
yöntemi kullanılarak tanınan değilken FileNotFoundException
, aldım.
Herhangi bir çözüm var mı?
CEVAP
Ben ne burada tamponlu okuma için bir etkinlik/uzatmak sizin ihtiyaçlarınıza uyacak şekilde değiştirin
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open("filename.txt")));
// do reading, usually loop until end of file reading
String mLine = reader.readLine();
while (mLine != null) {
//process line
...
mLine = reader.readLine();
}
} catch (IOException e) {
//log the exception
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
}
EDİT : cevabım eğer sorunuza bir faaliyet dışında nasıl yapacağım konusunda ise belki de işe yaramaz. Eğer sorunuza bir dosya okumak için ne kadar basit ise varlıktan sonra cevap yukarıda.
GÜNCELLEME:
Bu tür sadece İnputStreamReader çağrı türü ekleyin belirten bir dosyayı açmak için izleyin.
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open("filename.txt"), "UTF-8"));
// do reading, usually loop until end of file reading
String mLine = reader.readLine();
while (mLine != null) {
//process line
...
mLine = reader.readLine();
}
} catch (IOException e) {
//log the exception
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
}
EDİT
@Stan diyor açıklamada, verdiğim kod satırlarını özetliyor. mLine
Her pas yerini aldı. //process line
Bu yüzden yazmıştım. Dosya veri (i.bir çeşit içeriyor sanırım e bir kişi listesi) ve her satır ayrı ayrı işlenmelidir.
Durumda sadece mLine
her özetle olacak her türlü işlem yapmadan dosyayı yüklemek için StringBuilder()
pass kullanarak ve her geçişte eklemek istiyorum.
BAŞKA BİR DÜZENLEME
@Vincent yoruma göre finally
blok ekledim.
Ayrıca Java 7 ve üst try-with-resources
son Java AutoCloseable
Closeable
özelliklerini kullanmak için kullanılabilir olduğunu unutmayın.
Ben bir Outlook (2003/2007) PST dosya ...
Nasıl bir okuma metni Android SD kartt...
Python Büyük Dosya Okuma için tembel Y...
/'Genişletilmiş' dosya özell...
Okuma hat 2 dosya veya başlık satırı a...