এই কোডটি প্রথমে ডিরেক্টরিটির অস্তিত্বের জন্য যাচাই করে এবং এটি না থাকলে এটি তৈরি করে এবং পরে ফাইলটি তৈরি করে। দয়া করে মনে রাখবেন যে আমি আপনার কিছু কোড কল যাচাই করতে পারিনি কারণ আমার কাছে আপনার সম্পূর্ণ কোড নেই, তাই আমি কলগুলি এই জাতীয় জিনিসগুলিতে গ্রহণ করছি getTimeStamp()
এবং getClassName()
কাজ করবে। আপনার ক্লাসগুলির যে IOException
কোনও ব্যবহার করার সময় নিক্ষিপ্ত হওয়া সম্ভব হওয়ার সাথে কিছু করা উচিত java.io.*
- হয় ফাইলগুলি লেখার আপনার ফাংশনটি এই ব্যতিক্রম নিক্ষেপ করা উচিত (এবং এটি অন্য কোথাও পরিচালনা করা উচিত), অথবা আপনার সরাসরি পদ্ধতিতে এটি করা উচিত। এছাড়াও, আমি ধরে নিয়েছি যে id
এটি টাইপ String
- আমি জানি না যেহেতু আপনার কোডটি সুস্পষ্টভাবে এটি সংজ্ঞায়িত করে না। এটি যদি অন্যরকম কিছু হয় তবে ফাইলনামে এটি ব্যবহার int
করার String
আগে আপনার সম্ভবত এটি কাস্ট করা উচিত I
এছাড়াও, আমি আপনার append
কলগুলি যথাযথ দেখেছি concat
বা তার সাথে প্রতিস্থাপন +
করেছি।
public void writeFile(String value){
String PATH = "/remote/dir/server/";
String directoryName = PATH.concat(this.getClassName());
String fileName = id + getTimeStamp() + ".txt";
File directory = new File(directoryName);
if (! directory.exists()){
directory.mkdir();
}
File file = new File(directoryName + "/" + fileName);
try{
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(value);
bw.close();
}
catch (IOException e){
e.printStackTrace();
System.exit(-1);
}
}
আপনি যদি মাইক্রোসফ্ট উইন্ডোজে কোডটি চালাতে চান তবে আপনার সম্ভবত বেয়ার পাথের নাম ব্যবহার করা উচিত নয় - /
এটি ফাইলের নামগুলির সাথে কী করবে তা আমি নিশ্চিত নই । সম্পূর্ণ বহনযোগ্যতার জন্য, আপনার পাথগুলি তৈরি করতে আপনার সম্ভবত ফাইল.সেসপেটর এর মতো কিছু ব্যবহার করা উচিত ।
সম্পাদনা করুন : নীচে জোসেফস্ক্রিপ্টের একটি মন্তব্য অনুসারে , ডিরেক্টরি অস্তিত্বের জন্য এটি পরীক্ষা করার প্রয়োজন নেই। directory.mkdir()
কল ফিরে আসবে true
যদি এটি একটি ডিরেক্টরির সৃষ্টি করেছেন এবং false
যদি না তা, কেস যখন নির্দেশিকা ইতিমধ্যেই অস্তিত্ব সহ।