ইন Fileবর্গ দুটি স্ট্রিং আছে, separatorএবং pathSeparator।
পার্থক্য কি? আমার কখন অন্যটির ওপরে ব্যবহার করা উচিত?
ইন Fileবর্গ দুটি স্ট্রিং আছে, separatorএবং pathSeparator।
পার্থক্য কি? আমার কখন অন্যটির ওপরে ব্যবহার করা উচিত?
উত্তর:
যদি আপনি বোঝাতে চান File.separatorএবং File.pathSeparatorতারপর:
File.pathSeparatorফাইল পাথের তালিকার পৃথক ফাইল পাথ পৃথক করতে ব্যবহৃত হয়। উইন্ডোজ, PATH পরিবেশ পরিবর্তনশীল বিবেচনা করুন vari আপনি একটি ব্যবহার ;তাই Windows এ ফাইল পাথ আলাদা করতে File.pathSeparatorহবে ;।
File.separatorহয় হয় /বা \এটি একটি নির্দিষ্ট ফাইলে পাথ বিভক্ত করতে ব্যবহৃত হয়। উদাহরণস্বরূপ উইন্ডোজ এটি \বা হয়C:\Documents\Test
File.separatorকরা উচিত File.fileSeparatorসংক্রান্তFile.pathSeparator
File। আমি মনে করি ফাইল অংশটি অন্তর্নিহিত। তবে জাভা দিয়ে তারা কী করেছে তা তারা কেন জানে।
আপনি যখন কোনও ফাইল পাথ তৈরি করছেন তখন আপনি বিভাজক ব্যবহার করুন। ইউনিক্সে তাই বিভাজক হয় /। সুতরাং আপনি যদি ইউনিক্সের পথটি তৈরি করতে চান তবে আপনি /var/tempএটি এটি করতে পারেন:
String path = File.separator + "var"+ File.separator + "temp"
আপনি pathSeparatorযখন ক্লাসপথের মতো ফাইলগুলির একটি তালিকা নিয়ে কাজ করছেন তখন আপনি এটি ব্যবহার করেন । উদাহরণস্বরূপ, যদি আপনার অ্যাপ্লিকেশনটি জারগুলির একটি তালিকা যুক্তি হিসাবে গ্রহণ করে তবে ইউনিক্সে সেই তালিকাটিকে বিন্যাস করার মানক উপায়টি হ'ল:/path/to/jar1.jar:/path/to/jar2.jar:/path/to/jar3.jar
সুতরাং ফাইলগুলির একটি তালিকা দেওয়া আপনি এই জাতীয় কিছু করবেন:
String listOfFiles = ...
String[] filePaths = listOfFiles.split(File.pathSeparator);
/var/tempতবে এটি File.separatorইতিমধ্যে ব্যবহারযোগ্য নয় কারণ আপনার কাছে ইতিমধ্যে প্ল্যাটফর্ম-নির্ভর কোড রয়েছে। পাশাপাশি হার্ডকোডের পথটি।
java.io.Fileশ্রেণিতে চারটি স্ট্যাটিক বিভাজক ভেরিয়েবল রয়েছে। আরও ভাল বোঝার জন্য, আসুন কিছু কোডের সাহায্যে বুঝতে পারি
মনে রাখবেন যে এগুলি সমস্তই চূড়ান্ত পরিবর্তনশীল এবং সিস্টেম নির্ভর।
এই বিভাজক ভেরিয়েবলগুলি মুদ্রণের জন্য এখানে জাভা প্রোগ্রামটি দেওয়া আছে। FileSeparator.java
import java.io.File;
public class FileSeparator {
public static void main(String[] args) {
System.out.println("File.separator = "+File.separator);
System.out.println("File.separatorChar = "+File.separatorChar);
System.out.println("File.pathSeparator = "+File.pathSeparator);
System.out.println("File.pathSeparatorChar = "+File.pathSeparatorChar);
}
}
ইউনিক্স সিস্টেমে উপরের প্রোগ্রামের আউটপুট:
File.separator = /
File.separatorChar = /
File.pathSeparator = :
File.pathSeparatorChar = :
উইন্ডোজ সিস্টেমে প্রোগ্রামটির আউটপুট:
File.separator = \
File.separatorChar = \
File.pathSeparator = ;
File.pathSeparatorChar = ;
আমাদের প্রোগ্রাম প্ল্যাটফর্মটি স্বাধীন করতে, আমাদের সর্বদা ফাইল পাথ তৈরি করতে বা PATH, CLASSPATH এর মতো কোনও সিস্টেমের ভেরিয়েবলগুলি পড়তে এই বিভাজকগুলি ব্যবহার করা উচিত।
বিভাজককে সঠিকভাবে কীভাবে ব্যবহার করতে হয় সে সম্পর্কে কোড স্নিপেট এখানে।
//no platform independence, good for Unix systems
File fileUnsafe = new File("tmp/abc.txt");
//platform independent and safe to use across Unix and Windows
File fileSafe = new File("tmp"+File.separator+"abc.txt");
Stringএবং charউল্লিখিত পদ্ধতি দ্বারা ফিরে সঠিকভাবে ফরম্যাট ব্যাকস্ল্যাশ (যদি উইন্ডোজ দিকে) আসতে না।