যদি এটি ইতিমধ্যে ক্লাসপথে থাকে তবে কেবল এটি ডিস্ক ফাইল সিস্টেমের পরিবর্তে ক্লাসপাথ থেকে সংগ্রহ করুন। আপেক্ষিক পাথের সাথে কোলাহল করবেন না java.io.File
। এগুলি বর্তমান চলমান ডিরেক্টরিের উপর নির্ভরশীল যার উপর আপনার জাভা কোডের অভ্যন্তর থেকে সম্পূর্ণ নিয়ন্ত্রণ নেই।
ListStopWords.txt
আপনার FileLoader
শ্রেণীর মতো একই প্যাকেজের মধ্যে রয়েছে তা ধরে নিই :
URL url = getClass().getResource("ListStopWords.txt");
File file = new File(url.getPath());
বা যদি আপনি শেষ পর্যন্ত পরে থাকেন তবে তা আসলে InputStream
এটির একটি :
InputStream input = getClass().getResourceAsStream("ListStopWords.txt");
এটি অবশ্যই একটি তৈরির চেয়ে বেশি পছন্দ করা হয়েছে new File()
কারণ সম্ভবত এটি url
কোনও ডিস্ক ফাইল সিস্টেমের পাথকে উপস্থাপন করতে পারে না তবে এটি ভার্চুয়াল ফাইল সিস্টেমের পথকেও উপস্থাপন করতে পারে (যা ঘটতে পারে যখন ডিস্ক ফাইল সিস্টেমে টেম্পার ফোল্ডারের পরিবর্তে জেআর মেমরিতে প্রসারিত হয়) বা এমনকি এমন কোনও একটি জাতীয় পাথ যা উভয়ই নির্ধারকের দ্বারা সংজ্ঞা অনুসারে নয় File
।
যদি ফাইলটি -র প্যাকেজটির নাম ইঙ্গিতগুলি হয়- আসলে একটি "ভুল" এক্সটেনশান সহ একটি সম্পূর্ণ যোগ্য বৈশিষ্ট্যযুক্ত ফাইল ( key=value
লাইন রয়েছে), তবে আপনি InputStream
তাত্ক্ষণিক load()
পদ্ধতিতে ফিড দিতে পারেন ।
Properties properties = new Properties();
properties.load(getClass().getResourceAsStream("ListStopWords.txt"));
দ্রষ্টব্য: আপনি যখন অভ্যন্তরীণ static
প্রসঙ্গ থেকে এটি অ্যাক্সেস করার চেষ্টা করছেন তখন উপরের উদাহরণগুলির পরিবর্তে FileLoader.class
(বা যাই হোক না কেন YourClass.class
) ব্যবহার করুন getClass()
।
properties.files
জন্য2
?