আপনার প্রয়োজনগুলি মেলাতে আমি বাফার রিডিং প্রসারিত / সংশোধন করার জন্য একটি ক্রিয়াকলাপে যা করি তা এখানে
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open("filename.txt")));
// do reading, usually loop until end of file reading
String mLine;
while ((mLine = reader.readLine()) != null) {
//process line
...
}
} catch (IOException e) {
//log the exception
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
}
সম্পাদনা: আপনার উত্তরটি যদি কোনও ক্রিয়াকলাপের বাইরে এটি কীভাবে করা যায় তবে আমার উত্তর সম্ভবত অকেজো। যদি আপনার প্রশ্নটি কীভাবে সম্পদ থেকে কোনও ফাইল পড়তে হয় তবে উত্তরটি উপরে।
আপডেট :
টাইপ নির্দিষ্ট করে একটি ফাইল খোলার জন্য নিম্নলিখিত হিসাবে ইনপুটস্ট্রিম রিডার কলটিতে টাইপ যুক্ত করুন।
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;
while ((mLine = reader.readLine()) != null) {
//process line
...
}
} catch (IOException e) {
//log the exception
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
}
সম্পাদনা
@ স্ট্যান মন্তব্যে যেমন বলেছেন, আমি যে কোডটি দিচ্ছি তাতে লাইনগুলি সংক্ষিপ্ত করা হচ্ছে না। mLineপ্রতি পাস প্রতিস্থাপন করা হয়। এজন্যই আমি লিখেছি //process line। আমি ধরে নিই যে ফাইলে কিছু প্রকারের ডেটা রয়েছে (যেমন একটি পরিচিতি তালিকা) এবং প্রতিটি লাইন আলাদাভাবে প্রক্রিয়া করা উচিত।
আপনি যদি কোনও প্রকার প্রক্রিয়াজাতকরণ ছাড়াই কেবল ফাইলটি লোড করতে চান তবে আপনাকে mLineপ্রতিটি পাস ব্যবহার করে StringBuilder()এবং প্রতিটি পাস সংযোজন করতে হবে।
অন্য সম্পাদনা
@ ভিনসেন্টের মন্তব্য অনুসারে আমি finallyব্লকটি যুক্ত করেছি।
এছাড়াও লক্ষ করুন যে জাভা 7 এবং উচ্চতর ক্ষেত্রে আপনি সাম্প্রতিক জাভার বৈশিষ্ট্যগুলি এবং বৈশিষ্ট্যগুলি ব্যবহার try-with-resourcesকরতে পারেন ।AutoCloseableCloseable
প্রেক্ষাপট
যে একটি মন্তব্য @LunarWatcher পয়েন্টে getAssets()একটি হল classমধ্যে context। সুতরাং, আপনি যদি এটির বাইরে কল করেন তবে আপনাকে এটি activityউল্লেখ করতে হবে এবং প্রসঙ্গের দৃষ্টান্তটি ক্রিয়াকলাপে প্রেরণ করা দরকার।
ContextInstance.getAssets();
এটি @ মানেশের উত্তরে ব্যাখ্যা করা হয়েছে। সুতরাং যদি এটি আপনার পক্ষে কার্যকর হয় তবে তার উত্তরটিকে উঁচু করে তোলা কারণ তিনিই সেই বিষয়টিকে নির্দেশ করেছেন।