ফাইলআউটপুট স্ট্রিমকে এমনভাবে ব্যবহার করার কোনও উপায় আছে যে কোনও ফাইল (স্ট্রিং ফাইলের নাম) যদি উপস্থিত না থাকে তবে তা কী তা তৈরি করবে?
FileOutputStream oFile = new FileOutputStream("score.txt", false);
ফাইলআউটপুট স্ট্রিমকে এমনভাবে ব্যবহার করার কোনও উপায় আছে যে কোনও ফাইল (স্ট্রিং ফাইলের নাম) যদি উপস্থিত না থাকে তবে তা কী তা তৈরি করবে?
FileOutputStream oFile = new FileOutputStream("score.txt", false);
উত্তর:
FileNotFoundException
ফাইলটি উপস্থিত না থাকলে এবং তৈরি করা যায় না ( ডক ), এটি একটি নিক্ষেপ করবে তবে এটি যদি এটি করতে পারে তবে এটি তৈরি করবে। নিশ্চিত হওয়ার জন্য আপনার সম্ভবত প্রথমে পরীক্ষা করা উচিত যে ফাইলটি তৈরি করার আগে ফাইলটি উপস্থিত রয়েছে FileOutputStream
(এবং এটি তৈরি createNewFile()
না করে তৈরি করুন ):
File yourFile = new File("score.txt");
yourFile.createNewFile(); // if file already exists will do nothing
FileOutputStream oFile = new FileOutputStream(yourFile, false);
createNewFile()
পদ্ধতিটি সহ, যেমন আমার উদাহরণে দেখানো হয়েছে
createNewFile()
এখানে মোট সময় অপচয়। সিস্টেমটি ইতিমধ্যে এটি করবে। আপনি কেবল এটি দু'বার দেখতে বাধ্য করছেন cing
একটি ফাইল তৈরি করার আগে, পিতামাতার সমস্ত ডিরেক্টরি তৈরি করা দরকার।
ব্যবহার yourFile.getParentFile().mkdirs()
আপনি একটি খালি ফাইল তৈরি করতে পারেন এটি বিদ্যমান কিনা না ...
new FileOutputStream("score.txt", false).close();
আপনি যদি ফাইলটি উপস্থিত থাকতে চান তবে তা ...
new FileOutputStream("score.txt", true).close();
আপনি যদি কেবল এমন কোনও ডিরেক্টরিতে ফাইল তৈরি করার চেষ্টা করেন যা আপনি নেই।
FileNotFoundException
উভয় ক্ষেত্রে নিক্ষেপ করে।
File f = new File("Test.txt");
if(!f.exists()){
f.createNewFile();
}else{
System.out.println("File already exists");
}
এই পাশ f
আপনার টু FileOutputStream
কন্সট্রাকটর।
একা লাইনে এটি অর্জনের জন্য অ্যাপাচি কমন্স থেকে ফাইল ইউটিলগুলি একটি দুর্দান্ত উপায়।
FileOutputStream s = FileUtils.openOutputStream(new File("/home/nikhil/somedir/file.txt"))
এটি যদি অস্তিত্ব না থাকে তবে প্যারেন্ট ফোল্ডার তৈরি করবে এবং উপস্থিত না থাকলে একটি ফাইল তৈরি করবে এবং যদি ফাইল অবজেক্ট ডিরেক্টরি হয় বা এতে লিখিত না হতে পারে তবে একটি ব্যতিক্রম ছুঁড়ে দেবে। এটি সমান :
File file = new File("/home/nikhil/somedir/file.txt");
file.getParentFile().mkdirs(); // Will create parent directories if not exists
file.createNewFile();
FileOutputStream s = new FileOutputStream(file,false);
উপরের সমস্ত অপারেশন একটি ব্যতিক্রম ছুঁড়ে ফেলবে যদি বর্তমান ব্যবহারকারীর অপারেশন করার অনুমতি না দেওয়া হয়।
উপস্থিত না থাকলে ফাইল তৈরি করুন। যদি ফাইলটি প্রস্থান করে তবে এর বিষয়বস্তু সাফ করুন:
/**
* Create file if not exist.
*
* @param path For example: "D:\foo.xml"
*/
public static void createFile(String path) {
try {
File file = new File(path);
if (!file.exists()) {
file.createNewFile();
} else {
FileOutputStream writer = new FileOutputStream(path);
writer.write(("").getBytes());
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
পাথ এবং ফাইল ব্যবহার না করে কেবল ফাইল তৈরির বিকল্প উপায় প্রদান করা।
Path path = Paths.get("Some/path/filename.txt");
Files.createDirectories(path.getParent());
if( !Files.exists(path))
Files.createFile(path);
Files.write(path, ("").getBytes());
FileNotFoundException
ফাইলটি উপস্থিত না থাকলে আপনি সম্ভাব্যভাবে একটি পেতে পারেন।
জাভা ডকুমেন্টেশন বলেছেন:
কোনও ফাইল উপলব্ধ কিনা বা তৈরি করা যায় তা অন্তর্নিহিত প্ল্যাটফর্মের উপর নির্ভর করে http://docs.oracle.com/javase/7/docs/api/java/io/FileOutputStream.html
আপনি যদি জাভা 7 ব্যবহার করেন তবে আপনি java.nio প্যাকেজটি ব্যবহার করতে পারেন:
অপশন প্যারামিটারটি ফাইলটি কীভাবে তৈরি বা খোলার তা সুনির্দিষ্ট করে ... এটি লেখার জন্য ফাইলটি খোলে, উপস্থিত না থাকলে ফাইল তৈরি করে ...
http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html
new FileOutputStream(f)
বেশিরভাগ ক্ষেত্রে একটি ফাইল তৈরি করবে, তবে দুর্ভাগ্যক্রমে আপনি একটি ফাইলনটফাউন্ডএক্সসেপশন পাবেন
যদি ফাইলটি বিদ্যমান থাকে তবে নিয়মিত ফাইলের পরিবর্তে ডিরেক্টরি হয় তবে এটি বিদ্যমান না তবে তৈরি করা যায় না, বা অন্য কোনও কারণে খোলা যায় না
আমি অন্য কথা, আপনি ফাইলনটফাউন্ডএক্সসেপশন অর্থ "আপনার ফাইল তৈরি করতে পারেনি" পেতে পারা যায়, তবে ফাইল তৈরি কেন ব্যর্থ হয়েছে তার কারণ আপনি খুঁজে পেতে সক্ষম হবেন না word
একটি সমাধান হ'ল ফাইল এপিআই-তে যে কোনও কল সরিয়ে ফেলা এবং পরিবর্তে ফাইলস এপিআই ব্যবহার করা কারণ এটি তত ভাল ত্রুটি পরিচালনার সরবরাহ করে। সাধারণত কোনো প্রতিস্থাপন new FileOutputStream(f)
সঙ্গে Files.newOutputStream(p)
।
আপনার ক্ষেত্রে ফাইল এপিআই ব্যবহার করার প্রয়োজন রয়েছে (কারণ আপনি উদাহরণস্বরূপ ফাইল ব্যবহার করে একটি বাহ্যিক ইন্টারফেস ব্যবহার করেন), Files.createFile(p)
আপনার ফাইলটি সঠিকভাবে তৈরি হয়েছে তা নিশ্চিত করার একটি ভাল উপায় এবং যদি তা না হয় তবে আপনি কেন জানেন না যে এটি কাজ করে না। কিছু লোক উপরে মন্তব্য করেছেন যে এটি অনর্থক। এটি সত্য, তবে আপনি আরও ভাল ত্রুটি পরিচালনা করছেন যা কিছু ক্ষেত্রে প্রয়োজনীয় হতে পারে।