1. Pathவர்க்கம்

வட்டில் உள்ள கோப்புகளுடன் ஏதாவது செய்யும் நிரலை நீங்கள் எழுத விரும்பினால், அது மிகவும் எளிதானது. ஜாவாவில் நிறைய வகுப்புகள் உள்ளன, அவை கோப்புகள் மற்றும் அவற்றின் உள்ளடக்கங்கள் இரண்டிலும் வேலை செய்ய உதவும்.

ஜாவாவின் ஆரம்ப பதிப்புகள் போன்ற Fileமற்றும் FileInputStreamகோப்புகளுடன் வேலை செய்ய வகுப்புகள் பயன்படுத்தப்பட்டன. இருப்பினும், Fileவகுப்பு இப்போது நிராகரிக்கப்பட்டது மற்றும் பயன்படுத்த பரிந்துரைக்கப்படவில்லை. நிச்சயமாக, நீங்கள் அதை குறியீடு, முறை அளவுருக்கள் அல்லது வகுப்பு கட்டமைப்பாளர்களில் இன்னும் சந்திக்கலாம்.

ஆரம்பத்திலிருந்தே, Pathவகுப்பைப் பயன்படுத்தி கோப்புகளுடன் எவ்வாறு வேலை செய்வது என்பதை நாங்கள் கற்றுக்கொள்வோம். Pathபதிலாக வந்த வர்க்கம் File. இது பாதுகாப்பானது மற்றும் திறமையானது.

Pathவர்க்கம்

தொழில்நுட்ப ரீதியாக, Pathஒரு வர்க்கம் அல்ல - இது ஒரு இடைமுகம். Pathஒவ்வொரு இயக்க முறைமைக்கும் (மற்றும் கோப்பு முறைமை) வகுப்பின் வம்சாவளியை எழுத அனுமதிக்க இது செய்யப்படுகிறது .

கோப்பு பாதைகளை எழுத விண்டோஸ் ஒரு தரநிலையைக் கொண்டுள்ளது, மேலும் லினக்ஸ் மற்றொரு தரத்தைக் கொண்டுள்ளது. நிச்சயமாக, உலகில் பல இயக்க முறைமைகள் உள்ளன, ஒவ்வொன்றும் அதன் சொந்த தரநிலையைக் கொண்டுள்ளன.

அதனால்தான் Pathகோப்புகளுடன் பணிபுரியும் முறைகளில் இடைமுகம் எல்லா இடங்களிலும் பயன்படுத்தப்படுகிறது, உண்மையில் வேலை அதன் வழித்தோன்றல் வகுப்புகள் மூலம் நடக்கிறது: WindowsPath, UnixPath, ...

Pathஒரு பொருளை உருவாக்குதல்

ஒரு பொருளை உருவாக்க Path(இது உண்மையில் சந்ததி வகுப்பின் பொருளாக இருக்கும் WindowsPath), நீங்கள் இது போன்ற ஒரு அறிக்கையைப் பயன்படுத்த வேண்டும்:

Path name = Path.of(path);

nameஒரு மாறியின் பெயர் எங்கே Path, மற்றும் pathகோப்பின் பெயர் (அல்லது அடைவு) உட்பட கோப்பின் (அல்லது அடைவு) பாதை. மற்றும் ofவகுப்பின் நிலையான முறை Path.

நிரல் விண்டோஸில் இயங்கினால் பொருள்களை உருவாக்க இந்த of()முறை பயன்படுத்தப்படுகிறது . WindowsPathநிரல் லினக்ஸில் இயங்கினால், UnixPathபொருள்கள் உருவாக்கப்படும். போன்ற குறியீட்டைப் பயன்படுத்தி ஒரு பொருளை உருவாக்க முடியாது .Pathnew Path()

எடுத்துக்காட்டுகள்:

குறியீடு குறிப்பு
Path file = Path.of("c:\\projects\\note.txt");
கோப்பிற்கான பாதை
Path directory = Path.of("c:\\projects\\");
கோப்பகத்திற்கான பாதை

செல்லுபடியாகும் பொருள் இருக்க கோப்பு (அல்லது அடைவு) இருக்க வேண்டிய அவசியமில்லை Path. ஒருவேளை நீங்கள் ஒரு கோப்பை உருவாக்க விரும்பலாம்... ஒரு Pathபொருள் சூப்-அப் போன்றது String: இது வட்டில் உள்ள ஒரு குறிப்பிட்ட கோப்புடன் இணைக்கப்படவில்லை - இது வட்டில் ஒரு குறிப்பிட்ட பாதையை சேமிக்கிறது. அவ்வளவுதான்.


2. வகையின் Pathமுறைகள்

இடைமுகம் Pathசில சுவாரஸ்யமான முறைகளைக் கொண்டுள்ளது. மிகவும் சுவாரஸ்யமானவை கீழே உள்ள அட்டவணையில் வழங்கப்பட்டுள்ளன.

முறை விளக்கம்
Path getParent()
மூல கோப்பகத்தை வழங்குகிறது
Path getFileName()
கோப்பகம் இல்லாமல் கோப்பு பெயரை வழங்குகிறது
Path getRoot()
ஒரு பாதையிலிருந்து ரூட் கோப்பகத்தை வழங்குகிறது
boolean isAbsolute()
தற்போதைய பாதை முழுமையானதா என்பதைச் சரிபார்க்கிறது
Path toAbsolutePath()
பாதையை முழுமையானதாக மாற்றுகிறது
Path normalize()
கோப்பகப் பெயரில் உள்ள வைல்டு கார்டுகளை நீக்குகிறது.
Path resolve(Path other)
முழுமையான மற்றும் தொடர்புடைய பாதைகளிலிருந்து புதிய முழுமையான பாதையை உருவாக்குகிறது.
Path relativize(Path other)
இரண்டு முழுமையான பாதைகளிலிருந்து தொடர்புடைய பாதையைப் பெறுகிறது.
boolean startsWith(Path other)
கொடுக்கப்பட்ட பாதையில் தற்போதைய பாதை தொடங்குகிறதா என்பதைச் சரிபார்க்கிறது
boolean endsWith(Path other)
கொடுக்கப்பட்ட பாதையுடன் தற்போதைய பாதை முடிவடைகிறதா என்பதைச் சரிபார்க்கிறது
int getNameCount()
/டிலிமிட்டராகப் பயன்படுத்தி பாதையை பகுதிகளாகப் பிரிக்கிறது .
பகுதிகளின் எண்ணிக்கையை வழங்குகிறது.
Path getName(int index)
/டிலிமிட்டராகப் பயன்படுத்தி பாதையை பகுதிகளாகப் பிரிக்கிறது .
ஒரு பகுதியை அதன் குறியீட்டின் மூலம் வழங்குகிறது.
Path subpath(int beginIndex, int endIndex)
/டிலிமிட்டராகப் பயன்படுத்தி பாதையை பகுதிகளாகப் பிரிக்கிறது .
கொடுக்கப்பட்ட இடைவெளியுடன் தொடர்புடைய துணைப்பாதையை வழங்குகிறது.
File toFile()
ஒரு Pathபொருளை நிறுத்தப்பட்ட Fileபொருளாக மாற்றுகிறது
URI toUri()
Pathஒரு பொருளை ஒரு URIபொருளாக மாற்றுகிறது

தற்போதுள்ள முறைகளின் சுருக்கமான விளக்கம் கீழே உள்ளது.


3. ஒரு பாதையை பகுதிகளாகப் பிரித்தல்

இந்த getParent()முறை தற்போதைய பாதைக்கான பெற்றோர் கோப்பகத்தை சுட்டிக்காட்டும் பாதையை வழங்குகிறது. இந்த பாதை ஒரு கோப்பகமா அல்லது கோப்பாக இருந்தாலும் சரி:

குறியீடு மதிப்பு
String str = "c:\\windows\\projects\\note.txt";
Path path = Path.of(str).getParent();
"c:\\windows\\projects\\"
String str = "c:\\windows\\projects\\";
Path path = Path.of(str).getParent();
"c:\\windows\\"
String str = "c:\\";
Path path = Path.of(str).getParent();
null

முறையானது getFileName()ஒரு கோப்பின் (அல்லது அடைவு) பெயரை வழங்குகிறது - கடைசியாக பிரித்த பிறகு எது வந்தாலும்:

குறியீடு மதிப்பு
String str = "c:\\windows\\projects\\note.txt";
Path path = Path.of(str).getFileName();
"note.txt"
String str = "c:\\windows\\projects\\";
Path path = Path.of(str).getFileName();
"projects"
String str = "c:\\";
Path path = Path.of(str).getFileName();
null

இந்த getRoot()முறை ரூட் கோப்பகத்திற்கு பாதையை வழங்குகிறது:

குறியீடு மதிப்பு
String str = "c:\\windows\\projects\\";
Path path = Path.of(str).getRoot();
"c:\\"


4. முழுமையான மற்றும் உறவினர் பாதைகள்

இரண்டு வகையான பாதைகள் உள்ளன: முழுமையான மற்றும் உறவினர். ஒரு முழுமையான பாதை ரூட் கோப்பகத்திலிருந்து தொடங்குகிறது. விண்டோஸுக்கு, இது கோப்புறையாக இருக்கலாம் c:\; Linux க்கான — /அடைவு

சில அடைவுகளுடன் தொடர்புடைய ஒரு தொடர்புடைய பாதை அர்த்தமுள்ளதாக இருக்கும். அதாவது, இது சாலையின் முடிவு போன்றது, ஆனால் ஆரம்பம் இல்லாமல். நீங்கள் ஒரு உறவினர் பாதையை ஒரு முழுமையான பாதையாகவும், நேர்மாறாகவும் மாற்றலாம்

boolean isAbsolute()முறை

தற்போதைய பாதை முழுமையானதா என்பதை இந்த முறை சரிபார்க்கிறது

குறியீடு மதிப்பு
String str = "c:\\windows\\projects\\note.txt";
boolean abs = Path.of(str).isAbsolute();
true
String str = "src\\com\\codegym\\Main.java";
boolean abs = Path.of(str).isAbsolute();
false

Path toAbsolutePath()முறை

பாதையை முழுமையானதாக மாற்றுகிறது. தேவைப்பட்டால், தற்போதைய வேலை கோப்பகத்தை அதில் சேர்க்கிறது:

குறியீடு மதிப்பு
String str = "c:\\windows\\projects\\note.txt";
Path path = Path.of(str).toAbsolutePath();
"c:\\windows\\projects\\note.txt"
String str = "src\\com\\codegym\\Main.java";
Path path = Path.of(str).toAbsolutePath();
"d:\\work\\src\\com\\codegym\\Main.java"

Path normalize()முறை

பாதையில், கோப்பகத்தின் பெயருக்குப் பதிலாக, ".." என்று எழுதலாம், அதாவது ஒரு கோப்பகத்திற்குத் திரும்பு . இயல்பாக்கம் இந்த விஷயங்களை நீக்குகிறது. எடுத்துக்காட்டுகள்:

குறியீடு மதிப்பு
String str = "c:\\windows\\..\\projects\\note.txt";
Path path = Path.of(str).normalize();
"c:\\projects\\note.txt"
String str = "src\\com\\codegym\\..\\Main.java";
Path path = Path.of(str).normalize();
"src\\com\\Main.java"

Path relativize(Path other)முறை

relativize()"பாதைகளுக்கு இடையிலான வேறுபாடுகளை" உருவாக்க இந்த முறை உங்களை அனுமதிக்கிறது: ஒரு பாதை மற்றொன்றுடன் தொடர்புடையது

குறியீடு மதிப்பு
Path path1 = Path.of("c:\\windows\\projects\\note.txt");
Path path2 = Path.of("c:\\windows\\");
Path result = path2.relativize(path1);
"projects\\note.txt"
Path path1 = Path.of("c:\\windows\\projects\\note.txt");
Path path2 = Path.of("c:\\windows\\");
Path result = path1.relativize(path2);
"..\\.."
Path path1 = Path.of("c:\\aaa\\bbb\\1.txt");
Path path2 = Path.of("d:\\zzz\\y.jpg");
Path result = path1.relativize(path2);
சட்டவிரோத வாதம் விதிவிலக்கு:
இரண்டு பாதைகளும் வெவ்வேறு "ரூட்" (வெவ்வேறு வட்டுகள்)

Path resolve(Path other)முறை

முறை resolve()இதற்கு நேர்மாறானது relativize(): இது ஒரு முழுமையான மற்றும் தொடர்புடைய பாதையிலிருந்து ஒரு புதிய முழுமையான பாதையை உருவாக்குகிறது.

குறியீடு மதிப்பு
Path path1 = Path.of("projects\\note.txt");
Path path2 = Path.of("c:\\windows\\");
Path result = path1.resolve(path2);
"c:\\windows"
Path path1 = Path.of("projects\\note.txt");
Path path2 = Path.of("c:\\windows\\");
Path result = path2.resolve(path1);
"c:\\windows\\projects\\note.txt"

toFile()முறை

Fileஅப்ஜெக்ட்டின் அதே கோப்பு பாதையை சேமித்து வைக்கும் ஒரு நிராகரிக்கப்பட்ட பொருளை இந்த முறை வழங்குகிறது Path.

toURI()முறை

முறையானது பாதையை நிலையான URI க்கு மாற்றுகிறது , மேலும் கோப்பிற்கான பாதையைக் கொண்ட ஒரு பொருளை வழங்குகிறது:

கோப்பிற்கான பாதை கோப்பிற்கு URI
c:\windows\projects\note.txt
file:///c:/windows/projects/note.txt