1. Filesவர்க்கம்

கோப்புகள் வகுப்பு

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

முறை விளக்கம்
Path createFile(Path path)
புதிய கோப்பை உருவாக்குகிறது, அதன் பாதை உள்ளதுpath
Path createDirectory(Path path)
புதிய கோப்பகத்தை உருவாக்குகிறது
Path createDirectories(Path path)
பல அடைவுகளை உருவாக்குகிறது
Path createTempFile(prefix, suffix)
ஒரு தற்காலிக கோப்பை உருவாக்குகிறது
Path createTempDirectory(prefix)
ஒரு தற்காலிக கோப்பகத்தை உருவாக்குகிறது
void delete(Path path)
கோப்பு அல்லது கோப்பகம் காலியாக இருந்தால் அதை நீக்குகிறது
Path copy(Path src, Path dest)
ஒரு கோப்பை நகலெடுக்கிறது
Path move(Path src, Path dest)
ஒரு கோப்பை நகர்த்துகிறது
boolean isDirectory(Path path)
பாதை ஒரு கோப்பகமா மற்றும் கோப்பு இல்லையா என்பதைச் சரிபார்க்கிறது
boolean isRegularFile(Path path)
பாதை ஒரு கோப்பாக உள்ளதா மற்றும் கோப்பகமா என்பதைச் சரிபார்க்கிறது
boolean exists(Path path)
கொடுக்கப்பட்ட பாதையில் ஒரு பொருள் இருக்கிறதா என்பதைச் சரிபார்க்கிறது
long size(Path path)
கோப்பு அளவைத் தருகிறது
byte[] readAllBytes(Path path)
பைட்டுகளின் வரிசையாக ஒரு கோப்பின் முழு உள்ளடக்கத்தையும் வழங்குகிறது
String readString(Path path)
ஒரு கோப்பின் முழு உள்ளடக்கத்தையும் ஒரு சரமாக வழங்கும்
List<String> readAllLines(Path path)
ஒரு கோப்பின் முழு உள்ளடக்கத்தையும் சரங்களின் பட்டியலாக வழங்கும்
Path write(Path path, byte[])
ஒரு கோப்பில் பைட்டுகளின் வரிசையை எழுதுகிறது
Path writeString(Path path, String str)
ஒரு கோப்பில் ஒரு சரத்தை எழுதுகிறது
DirectoryStream<Path> newDirectoryStream(Path dir)
கொடுக்கப்பட்ட கோப்பகத்தில் இருந்து கோப்புகளின் (மற்றும் துணை அடைவுகள்) தொகுப்பை வழங்குகிறது

2. கோப்புகள் மற்றும் கோப்பகங்களை உருவாக்குதல்

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

குறியீடு குறிப்பு
Files.createFile(Path.of("c:\\readme.txt"));
ஒரு கோப்பை உருவாக்குகிறது
Files.createDirectory(Path.of("c:\\test"));
ஒரு கோப்பகத்தை உருவாக்குகிறது
Files.createDirectories(Path.of("c:\\test\\1\\2\\3"));
ஒரு கோப்பகம் மற்றும் தேவையான அனைத்து துணை அடைவுகளும் இல்லை என்றால் அவற்றை உருவாக்குகிறது.

3. நகலெடுத்தல், நகர்த்துதல் மற்றும் நீக்குதல்

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

குறியீடு குறிப்பு
Path path1 = Path.of("c:\\readme.txt");
Path path2 = Path.of("c:\\readme-copy.txt");
Files.copy(path1, path2);
ஒரு கோப்பை நகலெடுக்கிறது
Path path1 = Path.of("c:\\readme.txt");
Path path2 = Path.of("d:\\readme-new.txt");
Files.move(path1, path2);
ஒரு கோப்பை நகர்த்தி மறுபெயரிடுகிறது
Path path = Path.of("d:\\readme-new.txt");
Files.delete(path);
ஒரு கோப்பை நீக்குகிறது

4. ஒரு கோப்பின் வகை மற்றும் இருப்பை சரிபார்த்தல்

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

இதற்கும் பிரத்யேக முறைகள் உள்ளன. ஒரு கோப்பின் நீளத்தையும் நீங்கள் எளிதாகக் கண்டறியலாம்:

குறியீடு குறிப்பு
Files.isRegularFile(Path.of("c:\\readme.txt"));
true
Files.isDirectory(Path.of("c:\\test"));
true
Files.exists(Path.of("c:\\test\\1\\2\\3"));
false
Files.size(Path.of("c:\\readme.txt"));
10112

5. கோப்பு உள்ளடக்கங்களுடன் பணிபுரிதல்

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

குறியீடு விளக்கம்
Path path = Path.of("c:\\readme.txt");
List<String> list = Files.readAllLines(path);

for (String str : list)
   System.out.println(str);

கோப்பின் உள்ளடக்கங்களை சரங்களின் பட்டியலாகப் படிக்கவும்.

சரங்களைக் காட்டு


6. ஒரு கோப்பகத்தின் உள்ளடக்கங்களைப் பெறுதல்

மிகவும் சுவாரஸ்யமான முறை இன்னும் உள்ளது. கொடுக்கப்பட்ட கோப்பகத்தில் கோப்புகள் மற்றும் துணை அடைவுகளைப் பெற இது பயன்படுகிறது.

newDirectoryStream()ஒரு சிறப்பு பொருளைத் தரும் முறையைப் பற்றி நாங்கள் பேசுகிறோம் DirectoryStream<Path>. கொடுக்கப்பட்ட கோப்பகத்தின் அனைத்து கோப்புகள் மற்றும் துணை அடைவுகளைப் பெற நீங்கள் பயன்படுத்தக்கூடிய ஒரு செயலி(!) உள்ளது.

இது ஒலிப்பதை விட எளிதானது.

குறியீடு விளக்கம்
Path path = Path.of("c:\\windows");

try (DirectoryStream<Path> files = Files.newDirectoryStream(path)) {
   for (Path path : files)
      System.out.println(path);
}


கோப்புகளின் பட்டியலைக் கொண்ட ஒரு பொருளைப் பெறவும்,
கோப்புகளின் பட்டியலின் மீது லூப் செய்யவும்

பொருள் DirectoryStream<Path>இரண்டு பண்புகளைக் கொண்டுள்ளது. முதலில், இது கோப்பு பாதைகளை வழங்கும் ஒரு மறு செய்கையைக் கொண்டுள்ளது, மேலும் இந்த பொருளை ஒரு வளையத்திற்குள் பயன்படுத்தலாம் for-each.

இரண்டாவதாக, இந்த ஆப்ஜெக்ட் ஒரு தரவு ஸ்ட்ரீம் ஆகும், எனவே இது முறையைப் பயன்படுத்தி வெளிப்படையாக மூடப்பட வேண்டும் close()அல்லது ஒரு தொகுதிக்குள் பயன்படுத்தப்படும் என்று அறிவிக்க வேண்டும் try-with-resources.



7. Files.newInputStreamமுறை

ஜாவா 5 இல் தொடங்கி, FileInputStreamமற்றும் FileOutputStreamவகுப்புகள் நிறுத்தப்பட்டன. அவற்றின் குறைபாடுகளில் ஒன்று, இந்த வகுப்புகளின் பொருள்கள் உருவாக்கப்பட்டால், கோப்புகள் உடனடியாக வட்டில் உருவாக்கப்படுகின்றன. கோப்பு உருவாக்கம் தொடர்பான அனைத்து விதிவிலக்குகளும் தூக்கி எறியப்படலாம்.

பின்னர் இது சிறந்த முடிவு அல்ல என்று அங்கீகரிக்கப்பட்டது. java.nio.Filesஅதன்படி, கோப்பு பொருள்களை உருவாக்க பயன்பாட்டு வகுப்பின் முறைகளைப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது .

கோப்புகளை உருவாக்குவதற்கான பழைய அணுகுமுறைக்கும் புதிய அணுகுமுறைக்கும் இடையிலான ஒப்பீடு இங்கே:

முன்பு
String src = "c:\\projects\\log.txt";
InputStream input = new FileInputStream(src);
பிறகு
String src = "c:\\projects\\log.txt";
InputStream input = Files.newInputStream( Path.of(src) );

மேலும் இதற்கு இதே போன்ற மாற்று உள்ளது FileOutputStream:

முன்பு
String src = "c:\\projects\\log.txt";
OutputStream  output = new FileOutputStream( src );
பிறகு
String src = "c:\\projects\\log.txt";
OutputStream  output = Files.newOutputStream( Path.of( src ) );