"ஓ, ரிஷி! ஹாய்!"

"ஹாய், அமிகோ! எப்படி இருக்கிறது வாழ்க்கை?"

"அருமையானது. பைல் மற்றும் அதை எப்படி வேலை செய்வது என்பது பற்றி சில சுவாரஸ்யமான விஷயங்களை பிலாபோ என்னிடம் சொல்லி வருகிறார்."

"இது நடக்கும் போது, ​​இந்த தலைப்பில் நான் ஏதாவது சேர்க்க வேண்டும் என்று நினைக்கிறேன்."

"அப்படியா? அப்புறம் நான் காதுகள் எல்லாம்."

"சரி, கேளுங்கள். ஜாவா தொடர்ந்து உருவாகி வருகிறது. அதன் டெவலப்பர்கள் பல்வேறு விஷயங்களை மிகவும் திறமையாகச் செய்வதற்கான புதிய வழிகளைத் தொடர்ந்து தேடுகின்றனர். ஜாவா 7 இல், கோப்பு வகுப்பிற்கு மாற்றாகச் சேர்த்துள்ளனர்."

கோப்புகள், பாதை - 1

"மாற்று?"

"ஆம். அவர்கள் கோப்பு வகுப்பை அடிப்படையாக எடுத்துக்கொண்டு , சில புதிய விஷயங்களைச் சேர்த்து, முறைகளை மறுபெயரிட்டனர், பின்னர் அதை இரண்டாகப் பிரித்தனர். எனவே இப்போது இரண்டு புதிய வகுப்புகள் உள்ளன: பாதை மற்றும் கோப்புகள்பாதை உண்மையில் கோப்பின் புதிய அனலாக் ஆகும். class, மற்றும் File என்பது ஒரு பயன்பாட்டு வகுப்பு (அரேய்கள் மற்றும் சேகரிப்புகள் வகுப்புகளுக்கு ஒப்பானது) கோப்பு வகுப்பின் அனைத்து நிலையான முறைகளும் அங்கு செல்கின்றன. OOP அடிப்படையில் இதைச் செய்வது 'மிகவும் சரியானது'."

"சரி, அது OOP அடிப்படையில் இருந்தால் சரி. அதனால் என்ன மாறியது?"

"முதலில், அவர்கள் String  மற்றும் File ஆப்ஜெக்ட்களை திருப்பியளித்த முறைகளை மீண்டும் உருவாக்க வேண்டாம் என்று முடிவு செய்தனர்  . பாதை  வகுப்பில், அனைத்து முறைகளும் ஒரு பாதையை திருப்பி அனுப்புகின்றன .

"இரண்டாவதாக, அவர்கள் நிறைய நிலையான பயன்பாட்டு முறைகளை கோப்புகள் வகுப்பிற்கு நகர்த்தினர்."

"மூன்றாவதாக, உறவினர் பாதைகளுடன் வேலை செய்வது மிகவும் வசதியானது."

"முறைகளின் பட்டியல் இங்கே:"

பாதை வகுப்பின் முறைகள் விளக்கம்
boolean isAbsolute() பாதை முழுமையானதாக இருந்தால் உண்மை திரும்பும்.
Path getRoot() தற்போதைய பாதையின் மூலத்தை, அதாவது மிக உயர்ந்த கோப்பகத்தை வழங்குகிறது.
Path getFileName() தற்போதைய பாதையில் இருந்து கோப்பு பெயரை வழங்குகிறது.
Path getParent() தற்போதைய பாதையில் இருந்து கோப்பகத்தை திரும்பப் பெறுகிறது.
boolean startsWith(Path other) தற்போதைய பாதை கடந்த பாதையில் தொடங்குகிறதா என்பதைச் சரிபார்க்கிறது.
boolean endsWith(Path other) தற்போதைய பாதை கடந்த பாதையுடன் முடிவடைகிறதா என்பதைச் சரிபார்க்கிறது.
Path normalize() தற்போதைய பாதையை இயல்பாக்குகிறது. எடுத்துக்காட்டாக, "c:/dir/dir2/../a.txt" ஐ "c:/dir/a.txt" ஆக மாற்றுகிறது
Path relativize(Path other) இரண்டு பாதைகளின் தொடர்புடைய பாதையை கணக்கிடுகிறது, அதாவது "பாதைகளுக்கு இடையிலான வேறுபாடு"
Path resolve(String other) தற்போதைய மற்றும் தொடர்புடைய பாதைகளைப் பயன்படுத்தி ஒரு முழுமையான பாதையைத் தீர்க்கிறது.
URI toUri() தற்போதைய பாதை/கோப்பு என்றால் URI ஐ வழங்கும்.
Path toAbsolutePath() அது உறவினராக இருந்தால் பாதையை முழுமையான பாதையாக மாற்றுகிறது.
File toFile() தற்போதைய பாதை பொருளுடன் தொடர்புடைய கோப்பு பொருளை வழங்குகிறது.

"மற்றும் தற்போதைய பாதை - அது என்ன?"

"இது பாதை பொருளின் கட்டமைப்பாளருக்கு அனுப்பப்பட்ட பாதையாகும், அதன் முறைகள் அழைக்கப்படுகின்றன."

"சரி. கோப்புகள் வகுப்பில் என்ன முறைகள் உள்ளன?"

"எங்காவது போகணும்னு அவசரமா? இப்பவே சொல்றேன். இதோ முக்கியமான முறைகள்:"

கோப்புகள் வகுப்பின் முறைகள் விளக்கம்
Path createFile(…) வட்டில் ஒரு கோப்பை உருவாக்குகிறது.
Path createDirectory(…) ஒரு கோப்பகத்தை உருவாக்குகிறது.
Path createDirectories(…) ஒரு கோப்பகத்தையும் அதன் அனைத்து துணை அடைவுகளையும் உருவாக்குகிறது.
Path createTempFile(…) ஒரு தற்காலிக கோப்பை உருவாக்குகிறது.
Path createTempDirectory(…) ஒரு தற்காலிக கோப்பகத்தை உருவாக்குகிறது.
void delete(Path path) ஒரு கோப்பை நீக்குகிறது.
Path copy(Path source, Path target,…) ஒரு கோப்பை நகலெடுக்கிறது.
Path move(Path source, Path target,…) ஒரு கோப்பை நகர்த்துகிறது.
boolean isSameFile(Path, Path) இரண்டு கோப்புகளை ஒப்பிடுகிறது.
boolean isDirectory(Path) பாதை ஒரு கோப்பகமா?
boolean isRegularFile(Path) பாதை ஒரு கோப்பா?
long size(Path) கோப்பு அளவைத் தருகிறது.
boolean exists(Path) அதே பெயரில் ஒரு பொருள் இருக்கிறதா?
boolean notExists(Path) அதே பெயரில் ஒரு பொருள் இல்லையா?
long copy(InputStream, OutputStream) InputStream இலிருந்து OutputStream க்கு பைட்டுகளை நகலெடுக்கிறது.
long copy(Path, OutputStream) பாதையிலிருந்து OutputStream க்கு அனைத்து பைட்டுகளையும் நகலெடுக்கிறது.
long copy(InputStream, Path) InputStream இலிருந்து பாதைக்கு அனைத்து பைட்டுகளையும் நகலெடுக்கிறது.
byte[] read(InputStream, int initialSize) InputStream இலிருந்து பைட்டுகளின் வரிசையைப் படிக்கிறது.
byte[] readAllBytes(Path path) InputStream இலிருந்து அனைத்து பைட்டுகளையும் படிக்கிறது.
List<String> readAllLines(Path path,..) உரைக் கோப்பைப் படித்து, சரங்களின் பட்டியலைத் தருகிறது.
Path write(Path path, byte[] bytes,…) ஒரு கோப்பில் பைட்டுகளின் வரிசையை எழுதுகிறது.

"எவ்வளவு சுவாரஸ்யமானது! பல அருமையான செயல்பாடுகள், அனைத்தும் ஒரே இடத்தில்."

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

"இணையத்திலிருந்து ஒரு கோப்பைப் பதிவிறக்குவது கடினமாக இருக்கிறதா?"

"இது மிகவும் எளிது. இந்த உதாரணத்தைப் பாருங்கள்:"

குறியீடு
URL url = new URL("https://www.google.com.ua/images/srpr/logo11w.png");
InputStream inputStream = url.openStream();

Path tempFile = Files.createTempFile("temp-",".tmp");
Files.copy(inputStream, tempFile);

"அப்படியா?"

"ஆமாம், என்ன பார்க்கணும்னு எதிர்பார்த்தீங்க? 4 லைன்தான் இருக்கு."

" வரி 1.  ஒரு URL பொருளை உருவாக்குகிறது, அதற்கு படக் கோப்பின் URL அனுப்பப்படும்.

" வரி 2.  ஒரு கோப்பை (InputStream) படிக்க ஒரு ஸ்ட்ரீம் url ஆப்ஜெக்ட்டில் திறக்கப்பட்டது.

" வரி 3. ஒரு தற்காலிக கோப்பை உருவாக்க  இந்த createTempFileமுறை பயன்படுத்தப்படுகிறது.

" வரி 4.  Files.copy முறையானது லிருந்து தரவை நகலெடுக்கிறது  inputStream . tempFileஅவ்வளவுதான்."

"புத்திசாலித்தனம்!"

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

"அப்படியானால், இந்த உள்ளடக்கத்திற்கான நல்ல இணைப்பு இதோ"