अपाचे कॉमन्स आईओ - त्वरित गाइड

Apache Commons IO लाइब्रेरी फ़ाइल IO के लिए आम संचालन के लिए विभिन्न उपयोगिता वर्ग प्रदान करती है जिसमें उपयोग के मामलों की विस्तृत श्रृंखला शामिल है। यह बॉयलरप्लेट कोड लिखने से बचने में मदद करता है।

Apache Commons IO पुस्तकालय निम्नलिखित श्रेणियों के लिए कक्षाएं प्रदान करता है -

उपयोगिता वर्ग

ये वर्ग जो निम्न हैं org.apache.commons.ioपैकेज, फ़ाइल और स्ट्रिंग तुलना प्रदान करता है। निम्नलिखित कुछ उदाहरण हैं।

  • IOUtils- फ़ाइलों को पढ़ने, लिखने और कॉपी करने के लिए उपयोगिता के तरीके प्रदान करता है। तरीके InputStream, OutputStream, Reader और Writer के साथ काम करते हैं।

  • FilenameUtils- फ़ाइल ऑब्जेक्ट का उपयोग किए बिना फ़ाइल नामों के साथ काम करने के लिए विधि प्रदान करता है। यह समान तरीके से विभिन्न ऑपरेटिंग सिस्टम पर काम करता है।

  • FileUtils - फ़ाइलों को स्थानांतरित करने, खोलने, अस्तित्व की जाँच करने, फ़ाइल को पढ़ने आदि की तरह हेरफेर करने के लिए विधि प्रदान करता है। ये विधियाँ फ़ाइल ऑब्जेक्ट का उपयोग करती हैं।

  • IOCase - स्ट्रिंग हेरफेर और तुलना के लिए विधि प्रदान करता है।

  • FileSystemUtils - डिस्क ड्राइव पर मुक्त स्थान प्राप्त करने के लिए विधि प्रदान करता है।

  • LineIterator - लाइन-आधारित फ़ाइल के साथ काम करने के लिए एक लचीला तरीका प्रदान करता है।

फ़िल्टर कक्षाएं

फ़िल्टर कक्षाएं जो कि org.apache.commons.io.filefilter पैकेज के अंतर्गत हैं, स्ट्रिंग आधारित थकाऊ तुलनाओं के बजाय तार्किक मानदंडों के आधार पर फ़ाइलों को फ़िल्टर करने की विधियाँ प्रदान करती हैं। निम्नलिखित कुछ उदाहरण हैं।

  • NameFileFilter - एक नाम के लिए फ़ाइल-नाम फ़िल्टर करता है।

  • WildcardFileFilter - आपूर्ति की गई वाइल्डकार्ड का उपयोग करके फाइल को फ़िल्टर करता है।

  • SuffixFileFilter- फाइल प्रत्यय पर आधारित है। इसका उपयोग किसी विशेष प्रकार की सभी फ़ाइलों को पुनः प्राप्त करने में किया जाता है।

  • PrefixFileFilter - उपसर्ग के आधार पर फाइल को फ़िल्टर करता है।

  • OrFileFilter- फ़ाइल फिल्टर की एक सूची में सशर्त या तर्क प्रदान करता है। यदि कोई सूची सही है, तो रिटर्न सही है। अन्यथा, यह गलत है।

  • AndFileFilter- फ़ाइल फिल्टर की एक सूची में सशर्त और तर्क प्रदान करता है। सूची में कोई भी फ़िल्टर गलत होने पर वापस लौटता है। अन्यथा, यह सच है।

फ़ाइल मॉनिटर कक्षाएं

फाइल मॉनीटर कक्षाएं जो कि निम्न हैं org.apache.commons.io.monitorपैकेज, एक विशिष्ट फ़ाइल या फ़ोल्डर में परिवर्तनों को ट्रैक करने के लिए नियंत्रण प्रदान करता है और परिवर्तनों के अनुसार कार्रवाई करने की अनुमति देता है। निम्नलिखित कुछ उदाहरण हैं।

  • FileEntry- एक फ़ाइल या निर्देशिका की स्थिति प्रदान करता है। एक समय में फ़ाइल विशेषताएँ।

  • FileAlterationObserver - रूट डायरेक्टरी के नीचे फाइलों की स्थिति का प्रतिनिधित्व करता है, फाइल सिस्टम की जांच करता है और घटनाओं को बनाने, बदलने या हटाने के श्रोताओं को सूचित करता है।

  • FileAlterationMonitor - एक निर्दिष्ट अंतराल पर किसी भी पंजीकृत FileAlterationObserver ट्रिगर ट्रिगर एक निगरानी धागा पैदा करता है कि एक धागे का प्रतिनिधित्व करता है।

तुलनित्र वर्ग

के तहत फाइल मॉनिटर कक्षाएं org.apache.commons.io.comparator पैकेज की तुलना और फ़ाइलों और निर्देशिकाओं को आसानी से क्रमबद्ध करने की अनुमति देता है।

  • NameFileComparator - दो फाइलों के नाम की तुलना करें।

  • SizeFileComparator - दो फाइलों के आकार की तुलना करें।

  • LastModifiedFileComparator - दो फाइलों की अंतिम संशोधित तारीखों की तुलना करें।

स्ट्रीम कक्षाएं

InputStream के कई कार्यान्वयन हैं। org.apache.commons.io.input पैकेज के अंतर्गत और OutputStream के अंतर्गत org.apache.commons.io.output पैकेज के अंतर्गत, स्ट्रीम पर उपयोगी कार्य करने के लिए। निम्नलिखित कुछ उदाहरण हैं।

  • NullOutputStream - किसी भी त्रुटि के साथ भेजे गए सभी डेटा को अवशोषित करता है।

  • TeeOutputStream - दो धाराओं के लिए आउटपुट भेजता है।

  • ByteArrayOutputStream - JDK वर्ग का तेज़ संस्करण।

  • CountingOutputStream - धारा के माध्यम से पारित बाइट्स की संख्या गिना जाता है।

  • ProxyOutputStream - कॉल को प्रॉक्सी स्ट्रीम में बदलता है।

  • LockableFileWriter - लॉक फ़ाइलों को बनाने और सरल क्रॉस थ्रेड फ़ाइल लॉक हैंडलिंग की अनुमति देने के लिए एक FileWriter।

इस अध्याय में, हम अपाचे कॉमन्स IO के स्थानीय पर्यावरण सेटअप और विंडोज 2000 / XP, विंडोज 95/98 / ME आदि के लिए कॉमन्स IO का मार्ग कैसे सेट करें, इसके बारे में जानेंगे। हम कुछ लोकप्रिय जावा संपादकों के बारे में भी समझेंगे। कॉमन्स IO संग्रह कैसे डाउनलोड करें।

स्थानीय पर्यावरण सेटअप

यदि आप अभी भी जावा प्रोग्रामिंग भाषा के लिए अपना वातावरण सेट करने के लिए तैयार हैं, तो यह अनुभाग आपको मार्गदर्शन करेगा कि जावा को अपनी मशीन पर कैसे डाउनलोड और सेट किया जाए। पर्यावरण स्थापित करने के लिए कृपया नीचे दिए गए चरणों का पालन करें।

जावा एसई लिंक पर डाउनलोड करने के लिए स्वतंत्र रूप से उपलब्ध है https://www.oracle.comइसलिए आप अपने ऑपरेटिंग सिस्टम के आधार पर एक संस्करण डाउनलोड करते हैं।

जावा डाउनलोड करने और चलाने के लिए निर्देशों का पालन करें .exeअपनी मशीन पर जावा स्थापित करने के लिए। एक बार जब आप अपनी मशीन पर जावा स्थापित कर लेते हैं, तो आपको इंस्टॉलेशन निर्देशिकाओं को सही करने के लिए पर्यावरण चर सेट करना होगा।

Windows 2000 / XP के लिए पथ

आइए समझते हैं, विंडोज 2000 / XP के लिए पथ कैसे सेट करें। हम मान रहे हैं कि आपने जावा को स्थापित कर लिया हैc:\Program Files\java\jdk निर्देशिका।

  • 'मेरा कंप्यूटर' पर राइट-क्लिक करें और 'गुण' चुनें।

  • 'उन्नत' टैब के अंतर्गत 'पर्यावरण चर' बटन पर क्लिक करें।

  • अब, 'Path' वैरिएबल को बदल दें, ताकि, इसमें Java एक्जीक्यूटेबल का भी पथ शामिल हो। उदाहरण के लिए, यदि पथ वर्तमान में 'C: \ WINDOWS \ SYSTEM32' पर सेट है, तो पढ़ने के लिए अपना पथ परिवर्तित करें'C:\WINDOWS\SYSTEM32;c:\Program Files\java\jdk\bin'

विंडोज 95/98 / ME के ​​लिए पथ

आइए समझते हैं, विंडोज 95/98 / ME के ​​लिए पथ कैसे सेट करें। हम मान रहे हैं कि आपने जावा को स्थापित कर लिया हैc:\Program Files\java\jdk निर्देशिका।

  • 'C: \ autoexec.bat' फ़ाइल को संपादित करें और अंत में निम्न पंक्ति जोड़ें - 'PATH =% PATH%; C: \ Program Files \ java \ jdk \ bin'

Linux, UNIX, Solaris, FreeBSD के लिए पथ

पर्यावरण चर पथ को इंगित करने के लिए सेट किया जाना चाहिए जहां, जावा बायनेरिज़ स्थापित किए गए हैं। यदि आपको ऐसा करने में परेशानी होती है, तो अपने शेल दस्तावेज़ देखें।

उदाहरण, यदि आप अपने शेल के रूप में बैश का उपयोग करते हैं, तो आप अपने '.bashrc: PATH = / path / to / java: $ PATH' के अंत में निम्नलिखित पंक्ति जोड़ेंगे।

लोकप्रिय जावा संपादक

अपने जावा प्रोग्राम लिखने के लिए, आपको एक टेक्स्ट एडिटर चाहिए। बाजार में कई परिष्कृत आईडीई उपलब्ध हैं। लेकिन अभी के लिए, आप निम्नलिखित में से एक पर विचार कर सकते हैं -

  • Notepad - विंडोज मशीन पर आप किसी भी साधारण टेक्स्ट एडिटर जैसे नोटपैड (इस ट्यूटोरियल के लिए अनुशंसित), टेक्स्टपैड का उपयोग कर सकते हैं।

  • Netbeans - यह एक जावा आईडीई है जो ओपन-सोर्स और फ्री है और जिसे से डाउनलोड किया जा सकता है https://www.netbeans.org/index.html।

  • Eclipse - यह ग्रहण खुले स्रोत समुदाय द्वारा विकसित एक जावा आईडीई भी है और इससे डाउनलोड किया जा सकता है https://www.eclipse.org/.

डाउनलोड आम IO संग्रह

Apons-io-2.6- bin.zip से Apache Common IO jar फ़ाइल का नवीनतम संस्करण डाउनलोड करें, जो download_io.cgi पर उपलब्ध है । इस ट्यूटोरियल को लिखते समय, हमने commons-io-2.6-bin.zip डाउनलोड किया है और इसकी प्रतिलिपि बनाई है। यह C: \> अपाचे फ़ोल्डर में है।

ओएस संग्रह का नाम
खिड़कियाँ commons-io-2.6-bin.zip
लिनक्स कॉमन्स-कब-2.6 bin.tar.gz
मैक कॉमन्स-कब-2.6 bin.tar.gz

Apache आम IO पर्यावरण

ठीक APACHE_HOMEपर्यावरण चर को आधार निर्देशिका स्थान पर इंगित करने के लिए जहां, अपाचे जार आपकी मशीन पर संग्रहीत है। यह मानते हुए, हमने विभिन्न ऑपरेटिंग सिस्टम पर Apache फ़ोल्डर में commons-io-2.6-bin.zip निकाला है।

ओएस उत्पादन
खिड़कियाँ पर्यावरण चर APACHE_HOME को C: \ Apache पर सेट करें
लिनक्स निर्यात APACHE_HOME = / usr / स्थानीय / अपाचे
मैक निर्यात APACHE_HOME = / लाइब्रेरी / अपाचे

CLASSPATH चर सेट करें

ठीक CLASSPATHपर्यावरण चर आम IO जार स्थान को इंगित करने के लिए। यह मानते हुए, आपने विभिन्न ऑपरेटिंग सिस्टम पर Apache फ़ोल्डर में commons-io-2.6-bin.zip संग्रहीत किया है।

ओएस उत्पादन
खिड़कियाँ पर्यावरण चर कक्षा को% CLASSPATH% पर सेट करें;% APACHE_HOME% \ commons-io-2.6.jar ;;
लिनक्स निर्यात CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-io-2.6.jar:।
मैक निर्यात CLASSPATH = $ CLASSPATH: $ APACHE_HOME / commons-io-2.6.jar:।

IOUtils फ़ाइलों को पढ़ने, लिखने और कॉपी करने के लिए उपयोगिता विधियाँ प्रदान करती हैं। तरीके InputStream, OutputStream, Reader और Writer के साथ काम करते हैं।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.IOUtils कक्षा -

public class IOUtils
   extends Object

IOUtils की विशेषताएं

IOUtils की विशेषताएं नीचे दी गई हैं -

  • इनपुट / आउटपुट संचालन के लिए स्थैतिक उपयोगिता के तरीके प्रदान करता है।

  • toXXX () - एक स्ट्रीम से डेटा पढ़ता है।

  • लिखना () - एक स्ट्रीम में डेटा लिखना।

  • copy () - एक स्ट्रीम से दूसरे स्ट्रीम में सभी डेटा को कॉपी करें।

  • contentEquals - दो धाराओं की सामग्री की तुलना करें।

IOUtils क्लास का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

IOTester.java

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.commons.io.IOUtils;
public class IOTester {
   public static void main(String[] args) {
      try {
         //Using BufferedReader
         readUsingTraditionalWay();
         //Using IOUtils
         readUsingIOUtils();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   //reading a file using buffered reader line by line
   public static void readUsingTraditionalWay() throws IOException {
      try(BufferedReader bufferReader = new BufferedReader( new InputStreamReader(
      new FileInputStream("input.txt") ) )) {
         String line;
         while( ( line = bufferReader.readLine() ) != null ) {
            System.out.println( line );
         }
      }
   }
   //reading a file using IOUtils in one go
   public static void readUsingIOUtils() throws  IOException {
      try(InputStream in = new FileInputStream("input.txt")) {
         System.out.println( IOUtils.toString( in , "UTF-8") );
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम प्रिंट करेगा -

Welcome to TutorialsPoint. Simply Easy Learning.
Welcome to TutorialsPoint. Simply Easy Learning.

FileUtils फाइल को मैनिपुलेट करने की विधि प्रदान करता है जैसे चलती, खोलना, अस्तित्व की जाँच करना, फ़ाइल का पढ़ना आदि।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है। org.apache.commons.io.FileUtils Class -

public class FileUtils
   extends Object

FileUtils की विशेषताएं

FileUtils की विशेषताएं नीचे दी गई हैं -

  • किसी फ़ाइल में लिखने के तरीके।

  • किसी फ़ाइल से पढ़ने के तरीके।

  • मूल निर्देशिका सहित निर्देशिका बनाने की विधियाँ।

  • फ़ाइलों और निर्देशिकाओं की प्रतिलिपि बनाने के तरीके।

  • फ़ाइलों और निर्देशिकाओं को हटाने के तरीके।

  • URL से और में परिवर्तित करने के तरीके।

  • फ़िल्टर और एक्सटेंशन द्वारा फ़ाइलों और निर्देशिकाओं को सूचीबद्ध करने के तरीके।

  • फ़ाइल सामग्री की तुलना करने के तरीके।

  • अंतिम परिवर्तित तिथि दर्ज करने के तरीके।

  • एक चेकसम की गणना करने के तरीके।

FileUtils क्लास का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

IOTester.java

import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import org.apache.commons.io.FileUtils;
public class IOTester {
   public static void main(String[] args) {
      try {
         //Using FileUtils
         usingFileUtils();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingFileUtils() throws IOException {
      //get the file object
      File file = FileUtils.getFile("input.txt");
      //get the temp directory
      File tmpDir = FileUtils.getTempDirectory();
      System.out.println(tmpDir.getName());
      //copy file to temp directory
      FileUtils.copyFileToDirectory(file, tmpDir);
      //create a new file
      File newTempFile = FileUtils.getFile(tmpDir, file.getName());
      //get the content
      String data = FileUtils.readFileToString(newTempFile, Charset.defaultCharset());
      //print the content
      System.out.println(data);
   }
}

उत्पादन

उत्पादन का उल्लेख नीचे दिया गया है -

Temp
Welcome to TutorialsPoint. Simply Easy Learning.

FilenameUtils फ़ाइल ऑब्जेक्ट का उपयोग किए बिना फ़ाइल नामों के साथ काम करने की विधि प्रदान करती है। यह समान तरीके से विभिन्न ऑपरेटिंग सिस्टम पर काम करता है। यह वर्ग समस्याओं को हल करता है, जब विंडोज आधारित विकास मशीन से एक यूनिक्स आधारित उत्पादन मशीन में स्थानांतरित किया जाता है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.FilenameUtils कक्षा -

public class FilenameUtils
   extends Object

FileNameUtils की विशेषताएं

यह वर्ग फ़ाइल नाम के छह घटकों को परिभाषित करता है। एक उदाहरण स्थान पर विचार करेंC:\dev\project\file.txt. फिर, घटक इस प्रकार हैं:

  • उपसर्ग - C: \

  • सापेक्ष पथ - dev \ project \

  • पूर्ण पथ - C: \ dev \ project \

  • नाम - file.txt

  • आधार नाम - फ़ाइल

  • विस्तार - txt

निर्देशिका की पहचान करने के लिए, फ़ाइल नाम में एक विभाजक जोड़ें।

FilenameUtils क्लास का उदाहरण

FilenameUtils Class का उदाहरण नीचे दिया गया है -

IOTester.java

import java.io.IOException;
import org.apache.commons.io.FilenameUtils;
public class IOTester {
   public static void main(String[] args) {
      try {
         //Using FilenameUtils
         usingFilenameUtils();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingFilenameUtils() throws IOException {
      String path = "C:\\dev\\project\\file.txt";
      System.out.println("Full Path: " +FilenameUtils.getFullPath(path));
      System.out.println("Relative Path: " +FilenameUtils.getPath(path));
      System.out.println("Prefix: " +FilenameUtils.getPrefix(path));
      System.out.println("Extension: " + FilenameUtils.getExtension(path));
      System.out.println("Base: " + FilenameUtils.getBaseName(path));
      System.out.println("Name: " + FilenameUtils.getName(path));
      String filename = "C:/commons/io/../lang/project.xml";
      System.out.println("Normalized Path: " + FilenameUtils.normalize(filename));
   }
}

उत्पादन

आउटपुट नीचे दिया गया है -

Full Path: C:\dev\project\
Relative Path: dev\project\
Prefix: C:\
Extension: txt
Base: file
Name: file.txt
Normalized Path: C:\commons\lang\project.xml

FileSystemUtils एक डिस्क ड्राइव पर मुफ्त स्थान प्राप्त करने के लिए विधि प्रदान करता है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.FileSystemUtils कक्षा -

public class FileSystemUtils
   extends Object

FileSystemUtils क्लास का उदाहरण

नीचे दिया गया FileSystemUtils Class का उदाहरण है -

IOTester.java

import java.io.IOException;
import org.apache.commons.io.FileSystemUtils;
public class IOTester {
   public static void main(String[] args) {
      try {
         System.out.println("Free Space " + FileSystemUtils.freeSpaceKb("C:/") + " Bytes");
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
}

उत्पादन

नीचे दिया गया आउटपुट है -

Free Space 61355640 kb

IO केस संवेदनशीलता की गणना। विभिन्न ऑपरेटिंग सिस्टम में फ़ाइल नामों के लिए केस-सेंसिटिविटी के लिए अलग नियम हैं। उदाहरण के लिए, विंडोज़ फ़ाइल नामकरण के लिए केस-असंवेदनशील है जबकि यूनिक्स केस-संवेदी है। IOCase उस अंतर को पकड़ता है, यह नियंत्रित करने के लिए एक संबल प्रदान करता है कि फ़ाइल नाम की तुलना कैसे की जानी चाहिए। यह तुलना करने के लिए गणन का उपयोग करने के तरीके भी प्रदान करता है।

Enum घोषणा

इसके बाद org.apache.commons.io.IOCase Enum के लिए घोषणा की गई -

public enum IOCase
   extends Enum<IOCase> implements Serializable

IOCase Enum का उदाहरण

IOCase Enum का एक उदाहरण नीचे दिया गया है -

IOTester.java

import java.io.IOException;
import org.apache.commons.io.IOCase;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingIOCase();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingIOCase() throws IOException {
      String text = "Welcome to TutorialsPoint. Simply Easy Learning.";
      String text1 = "WELCOME TO TUTORIALSPOINT. SIMPLY EASY LEARNING.";
      System.out.println("Ends with Learning (case sensitive): " + IOCase.SENSITIVE.checkEndsWith(text1, "Learning."));
      System.out.println("Ends with Learning (case insensitive): " + IOCase.INSENSITIVE.checkEndsWith(text1, "Learning."));
      System.out.println("Equality Check (case sensitive): " + IOCase.SENSITIVE.checkEquals(text, text1));
      System.out.println("Equality Check (case insensitive): " + IOCase.INSENSITIVE.checkEquals(text, text1));
   }
}

उत्पादन

यह निम्नलिखित परिणाम प्रिंट करेगा -

Ends with Learning (case sensitive): false
Ends with Learning (case insensitive): true
Equality Check (case sensitive): false
Equality Check (case insensitive): true

LineIterator लाइन-आधारित फ़ाइल के साथ काम करने का एक लचीला तरीका प्रदान करता है। आइए इस अध्याय में उसी के बारे में जानें।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.LineIterator कक्षा -

public class LineIterator
   extends Object implements Iterator<String>, Closeable

लाइनटरेटर क्लास का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.
Learn web technologies,
prepare exams,
code online,
all at one place.

IOTester.java

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.LineIterator;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingLineIterator();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingLineIterator() throws IOException {
      //get the file object
      File file = FileUtils.getFile("input.txt");
      try(LineIterator lineIterator = FileUtils.lineIterator(file)) {
         System.out.println("Contents of input.txt");
         while(lineIterator.hasNext()) {
            System.out.println(lineIterator.next());
         }
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम प्रिंट करेगा -

Contents of input.txt
Welcome to TutorialsPoint. Simply Easy Learning.
Learn web technologies,
prepare exams,
code online,
all at one place.

NameFileFilter in Commons IO एक नाम के लिए फ़ाइल-नामों को फ़िल्टर करता है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.filefilter.NameFileFilter वर्ग :

public class NameFileFilter
   extends AbstractFileFilter implements Serializable

NameFileFilter क्लास का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

चलो वर्तमान निर्देशिका में सभी फ़ाइलों और निर्देशिकाओं को प्रिंट करते हैं और फिर, एक फ़ाइल को फ़िल्टर करते हैं जिसका नाम Input.txt है।

IOTester.java

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.IOCase;
import org.apache.commons.io.filefilter.NameFileFilter;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingNameFileFilter();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingNameFileFilter() throws IOException {
      //get the current directory
      File currentDirectory = new File(".");
      //get names of all files and directory in current directory
      String[] files = currentDirectory.list();
      System.out.println("All files and Folders.\n");
      for( int i = 0; i < files.length; i++ ) {
         System.out.println(files[i]);
      }
      System.out.println("\nFile with name input.txt\n");
      String[] acceptedNames = {"input", "input.txt"};
      String[] filesNames = currentDirectory.list( new NameFileFilter(acceptedNames, IOCase.INSENSITIVE) );
      for( int i = 0; i < filesNames.length; i++ ) {
         System.out.println(filesNames[i]);
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम प्रिंट करेगा -

All files and Folders.

.classpath
.project
.settings
bin
input.txt
src

File with name input.txt

input.txt

कॉमन्स IO में WildcardFileFilter आपूर्ति किए गए वाइल्डकार्ड का उपयोग करके फ़ाइलों को फ़िल्टर करता है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.filefilter.WildcardFileFilter कक्षा -

public class WildcardFileFilter
   extends AbstractFileFilter implements Serializable

वाइल्डकार्डफाइलफिल्टर क्लास का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है

Welcome to TutorialsPoint. Simply Easy Learning.

चलो वर्तमान निर्देशिका में सभी फ़ाइलों और निर्देशिकाओं को प्रिंट करते हैं और फिर, एक फ़ाइल को फ़िल्टर करते हैं जिसका नाम समाप्त होता है t

IOTester.java

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.filefilter.WildcardFileFilter;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingWildcardFileFilter();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingWildcardFileFilter() throws IOException {
      //get the current directory
      File currentDirectory = new File(".");
      //get names of all files and directory in current directory
      String[] files = currentDirectory.list();
      System.out.println("All files and Folders.\n");
      for( int i = 0; i < files.length; i++ ) {
        System.out.println(files[i]);
      }
      System.out.println("\nFile name ending with t.\n");
      String[] filesNames = currentDirectory.list( new  WildcardFileFilter("*t"));
      for( int i = 0; i < filesNames.length; i++ ) {
        System.out.println(filesNames[i]);
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

All files and Folders.

.classpath
.project
.settings
bin
input.txt
src

File name ending with t

.project
input.txt

SuffixFileFilter उन फ़ाइलों को फ़िल्टर करता है जो प्रत्यय पर आधारित होती हैं। इसका उपयोग किसी विशेष प्रकार की सभी फ़ाइलों को पुनः प्राप्त करने में किया जाता है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.filefilter.SuffixFileFilter कक्षा -

public class SuffixFileFilter
   extends AbstractFileFilter implements Serializable

SuffixFileFilter क्लास का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

चलो वर्तमान निर्देशिका में सभी फ़ाइलों और निर्देशिकाओं को प्रिंट करते हैं और फिर, एक्सटेंशन txt वाली फ़ाइल को फ़िल्टर करते हैं।

IOTester.java

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.filefilter.SuffixFileFilter;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingSuffixFileFilter();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingSuffixFileFilter() throws IOException {
      //get the current directory
      File currentDirectory = new File(".");
      //get names of all files and directory in current directory
      String[] files = currentDirectory.list();
      System.out.println("All files and Folders.\n");
      for( int i = 0; i < files.length; i++ ) {
         System.out.println(files[i]);
      }
      System.out.println("\nFile with extenstion txt\n");
      String[] filesNames = currentDirectory.list( new SuffixFileFilter("txt"));
      for( int i = 0; i < filesNames.length; i++ ) {
         System.out.println(filesNames[i]);
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

All files and Folders.

.classpath
.project
.settings
bin
input.txt
src

File with extenstion txt

input.txt

PrefixFileFilter उन फ़ाइलों को फ़िल्टर करता है जो उपसर्ग पर आधारित होती हैं।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.filefilter.PrefixFileFilter कक्षा -

public class PrefixFileFilter
   extends AbstractFileFilter implements Serializable

PrefixFileFilter क्लास का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

चलो वर्तमान निर्देशिका में सभी फ़ाइलों और निर्देशिकाओं को प्रिंट करते हैं और फिर, इनपुट के साथ शुरू होने वाले नाम के साथ एक फ़ाइल को फ़िल्टर करते हैं।

IOTester.java

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.filefilter.PrefixFileFilter;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingPrefixFileFilter();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingPrefixFileFilter() throws IOException {
      //get the current directory
      File currentDirectory = new File(".");
      //get names of all files and directory in current directory
      String[] files = currentDirectory.list();
      System.out.println("All files and Folders.\n");
      for( int i = 0; i < files.length; i++ ) {
         System.out.println(files[i]);
      }
      System.out.println("\nFile starting with input\n");
      String[] filesNames = currentDirectory.list( new PrefixFileFilter("input") );
      for( int i = 0; i < filesNames.length; i++ ) {
         System.out.println(filesNames[i]);
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम प्रिंट करेगा -

All files and Folders.

.classpath
.project
.settings
bin
input.txt
src

File with extenstion txt

input.txt

OrFileFilter फ़ाइल फ़िल्टर की सूची में सशर्त या तर्क प्रदान करता है। यदि यह सूची में कोई भी फ़िल्टर सही है, तो यह सत्य है। अन्यथा, यह गलत है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.filefilter.OrFileFilter कक्षा -

public class OrFileFilter
   extends AbstractFileFilter implements ConditionalFileFilter, Serializable

OrFileFilter क्लास का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

चलो वर्तमान निर्देशिका में सभी फ़ाइलों और निर्देशिकाओं को प्रिंट करते हैं और फिर, नाम से शुरू होने वाली फ़ाइल को फ़िल्टर करते हैं। या टी के साथ समाप्त होता है।

IOTester.java

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.filefilter.OrFileFilter;
import org.apache.commons.io.filefilter.PrefixFileFilter;
import org.apache.commons.io.filefilter.WildcardFileFilter;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingOrFileFilter();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingOrFileFilter() throws IOException {
      //get the current directory
      File currentDirectory = new File(".");
      //get names of all files and directory in current directory
      String[] files = currentDirectory.list();
      System.out.println("All files and Folders.\n");
      for( int i = 0; i < files.length; i++ ) {
         System.out.println(files[i]);
      }
      System.out.println("\nFile starting with . or ends with t\n");
      String[] filesNames = currentDirectory.list( new OrFileFilter(new PrefixFileFilter("."), new WildcardFileFilter("*t")));
      for( int i = 0; i < filesNames.length; i++ ) {
         System.out.println(filesNames[i]);
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

All files and Folders.

.classpath
.project
.settings
bin
input.txt
src

File starting with . or ends with t

.classpath
.project
.settings
input.txt

AndFileFilter फ़ाइल फ़िल्टर की सूची में सशर्त और तर्क प्रदान करता है। यह सही है, अगर सूची में सभी फ़िल्टर सही हैं। अन्यथा, यह गलत है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.filefilter.AndFileFilter कक्षा -

public class AndFileFilter
   extends AbstractFileFilter implements ConditionalFileFilter, Serializable

AndFileFilter क्लास का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

चलो वर्तमान निर्देशिका में सभी फ़ाइलों और निर्देशिकाओं को प्रिंट करते हैं और फिर, नाम से शुरू होने वाली फ़ाइल को फ़िल्टर करते हैं। और टी के साथ समाप्त होता है।

IOTester.java

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.filefilter.AndFileFilter;
import org.apache.commons.io.filefilter.PrefixFileFilter;
import org.apache.commons.io.filefilter.WildcardFileFilter;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingAndFileFilter();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingAndFileFilter() throws IOException {
      //get the current directory
      File currentDirectory = new File(".");
      //get names of all files and directory in current directory
      String[] files = currentDirectory.list();
      System.out.println("All files and Folders.\n");
      for( int i = 0; i < files.length; i++ ) {
         System.out.println(files[i]);
      }
      System.out.println("\nFile starting with . and ends with t\n");
      String[] filesNames = currentDirectory.list(new AndFileFilter(
         new PrefixFileFilter("."), new WildcardFileFilter("*t")));
      for( int i = 0; i < filesNames.length; i++ ) {
        System.out.println(filesNames[i]);
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

All files and Folders.

.classpath
.project
.settings
bin
input.txt
src

File starting with . or ends with t

.project

FileEntry एक फ़ाइल या निर्देशिका की स्थिति प्रदान करता है। एक समय में फ़ाइल विशेषताएँ।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.monitor.FileEntry कक्षा -

public class FileEntry
   extends Object implements Serializable

FileEntry की विशेषताएं

FileEntry क्लास ऑब्जेक्ट समय में एक बिंदु पर निम्नलिखित फ़ाइल विशेषताएँ प्रदान करता है।

  • getName () - फ़ाइल नाम।

  • मौजूद () - जाँचता है कि फ़ाइल मौजूद है या नहीं।

  • isDirectory () - चेक करता है कि फाइल डायरेक्टरी है या नहीं।

  • lastModified () - अंतिम संशोधित तिथि समय देता है।

  • listFiles () - डायरेक्टरी की सामग्री देता है।

FileEntry Class का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

IOTester.java

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.monitor.FileEntry;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingFileEntry();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingFileEntry() throws IOException {
      //get the file object
      File file = FileUtils.getFile("input.txt");
      FileEntry fileEntry = new FileEntry(file);
      System.out.println("Monitored File: " + fileEntry.getFile());
      System.out.println("File name: " + fileEntry.getName());
      System.out.println("Is Directory: " + 	fileEntry.isDirectory());
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

Monitored File: input.txt
File name: input.txt
Is Directory: false

FileAlterationObserver रूट डायरेक्टरी के नीचे फाइलों की स्थिति का प्रतिनिधित्व करता है, फाइलसिस्टम की जाँच करता है और घटनाओं को बनाने, बदलने या हटाने के श्रोताओं को सूचित करता है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है

org.apache.commons.io.monitor.FileAlterationObserver कक्षा -

public class FileAlterationObserver
   extends Object implements Serializable

FileAlterationObserver Class का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

IOTester.java

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileDeleteStrategy;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingFileAlterationObserver();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingFileAlterationObserver() throws IOException {
      //get the file object
      File inputFile = FileUtils.getFile("input.txt");
      String absolutePath = inputFile.getAbsolutePath();
      String parent = absolutePath.substring(0,absolutePath.indexOf("input.txt"));
      File parentDirectory = FileUtils.getFile(parent);
      FileAlterationObserver observer = new
      FileAlterationObserver(parentDirectory);
      observer.addListener(new FileAlterationListenerAdaptor() {
         @Override
         public void onDirectoryCreate(File file) {
            System.out.println("Folder created: " + file.getName());
         }
         @Override
            public void onDirectoryDelete(File file) {
               System.out.println("Folder deleted: " + file.getName());
            }
         @Override
            public void onFileCreate(File file) {
               System.out.println("File created: " + file.getName());
            }
         @Override
            public void onFileDelete(File file) {
               Syst em.out.println("File deleted: " + file.getName());
            }
        });
       //create a monitor to check changes after every 500 ms
       FileAlterationMonitor monitor = new FileAlterationMonitor(500, observer);
       try {
          monitor.start();
         //create a new directory
         File newFolder = new File("test");
         File newFile = new File("test1");
         newFolder.mkdirs();
         Thread.sleep(1000);
         newFile.createNewFile();
         Thread.sleep(1000);
         FileDeleteStrategy.NORMAL.delete(newFolder);
         Thread.sleep(1000);
         FileDeleteStrategy.NORMAL.delete(newFile);
         Thread.sleep(1000);
         monitor.stop(10000);
      } catch(IOException e) {
         System.out.println(e.getMessage());
      } catch(InterruptedException e) {
         System.out.println(e.getMessage());
      } catch (Exception e) {
         System.out.println(e.getMessage());
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

Folder created: test
File created: test1
Folder deleted: test
File deleted: test1

FileAlterationMonitor एक थ्रेड का प्रतिनिधित्व करता है जो एक निर्दिष्ट अंतराल पर किसी भी पंजीकृत FileAlterationObserver को ट्रिगर करने वाले मॉनिटरिंग थ्रेड को जन्म देता है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है। org.apache.commons.io.monitor.FileAlterationMonitor Class -

public final class FileAlterationMonitor
   extends Object implements Runnable

FileAlterationMonitor वर्ग का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

IOTester.java

import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileDeleteStrategy;
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.monitor.FileAlterationListenerAdaptor;
import org.apache.commons.io.monitor.FileAlterationMonitor;
import org.apache.commons.io.monitor.FileAlterationObserver;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingFileAlterationMonitor();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingFileAlterationMonitor() throws IOException {
      //get the file object
      File inputFile = FileUtils.getFile("input.txt");
      String absolutePath = inputFile.getAbsolutePath();
      String parent = absolutePath.substring(0,absolutePath.indexOf("input.txt"));
      File parentDirectory = FileUtils.getFile(parent);
      FileAlterationObserver observer = new
      FileAlterationObserver(parentDirectory);
      observer.addListener(new FileAlterationListenerAdaptor(){
         @Override
         public void onDirectoryCreate(File file) {
            System.out.println("Folder created: " + file.getName());
         }
         @Override
         public void onDirectoryDelete(File file) {
            System.out.println("Folder deleted: " + file.getName());
         }
         @Override
         public void onFileCreate(File file) {
            System.out.println("File created: " + file.getName());
         }
         @Override
         public void onFileDelete(File file) {
            System.out.println("File deleted: " + file.getName());
         }
      });
      //create a monitor to check changes after every 500 ms
      FileAlterationMonitor monitor = new FileAlterationMonitor(500, observer);
      try {
         monitor.start();
         //create a new directory
         File newFolder = new File("test");
         File newFile = new File("test1");
         newFolder.mkdirs();
         Thread.sleep(1000);
         newFile.createNewFile();
         Thread.sleep(1000);
         FileDeleteStrategy.NORMAL.delete(newFolder);
         Thread.sleep(1000);
         FileDeleteStrategy.NORMAL.delete(newFile);
         Thread.sleep(1000);
         monitor.stop(10000);
      } catch(IOException e) {
         System.out.println(e.getMessage());
      } catch(InterruptedException e) {
         System.out.println(e.getMessage());
      } catch (Exception e) {
         System.out.println(e.getMessage());
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

Folder created: test
File created: test1
Folder deleted: test
File deleted: test1

NameFileComparator दो फ़ाइलों के नामों की तुलना करता है। इसका उपयोग फाइलों की सूचियों या सरणियों को उनके नाम का उपयोग करने के लिए किया जा सकता है, या तो केस-संवेदी, केस-असंवेदनशील या सिस्टम पर निर्भर केस सेंसिटिव तरीके से।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है

org.apache.commons.io.comparator.NameFileComparator कक्षा -

public class NameFileComparator
   extends Object implements Serializable

NameFileComparator क्लास का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

IOTester.java

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import org.apache.commons.io.IOCase;
import org.apache.commons.io.comparator.NameFileComparator;
import org.apache.commons.io.filefilter.FileFileFilter;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingNameFileComparator();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingNameFileComparator() throws IOException {
      //get the current directory
      File currentDirectory = new File(".");
      NameFileComparator comparator = new
      NameFileComparator(IOCase.INSENSITIVE);
      File[] sortedFiles = comparator.sort(currentDirectory.listFiles((FileFilter)FileFileFilter.FILE));
      System.out.println("Sorted By Name: ");
      for(File file:sortedFiles) {
         System.out.println(file.getName());
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

Sorted By Name:
.classpath
.project
input.txt

SizeFileComparator दो फ़ाइलों / निर्देशिका के आकार की तुलना करता है। इसका उपयोग बच्चों की संख्या के आधार पर उनके आकार या निर्देशिकाओं का उपयोग करके फाइलों की सूची या सरणियों को क्रमबद्ध करने के लिए किया जा सकता है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है

org.apache.commons.io.comparator.SizeFileComparator कक्षा -

public class SizeFileComparator
   extends Object implements Serializable

SizeFileComparator क्लास का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

IOTester.java

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import org.apache.commons.io.comparator.SizeFileComparator;
import org.apache.commons.io.filefilter.FileFileFilter;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingSizeFileComparator();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   } 
   public static void usingSizeFileComparator() throws IOException {
      //get the current directory
      File currentDirectory = new File(".");
      SizeFileComparator comparator = new SizeFileComparator();
      File[] sortedFiles = comparator.sort(currentDirectory.listFiles((FileFilter)FileFileFilter.FILE));
      System.out.println("Sorted By Size: ");
      for(File file:sortedFiles) {
         System.out.println(file.getName() + ", size(kb) :" + file.length());
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

Sorted By Size:
input.txt, size:124
.project, size:382
.classpath, size:441

LastModifiedFileComparator दो फ़ाइलों / निर्देशिका की अंतिम संशोधित तारीखों की तुलना करता है। इसका उपयोग उनकी अंतिम संशोधित तिथियों का उपयोग करके फाइलों / निर्देशिकाओं की सूचियों या सरणियों को क्रमबद्ध करने के लिए किया जा सकता है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.comparator.LastModifiedFileComparator कक्षा -

public class LastModifiedFileComparator
   extends Object implements Serializable

LastModifiedFileComparator क्लास का उदाहरण

यहाँ इनपुट फ़ाइल है जिसे हमें पार्स करने की आवश्यकता है -

Welcome to TutorialsPoint. Simply Easy Learning.

IOTester.java

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;
import java.util.Date;
import org.apache.commons.io.comparator.LastModifiedFileComparator;
import org.apache.commons.io.filefilter.FileFileFilter;
public class IOTester {
   public static void main(String[] args) {
      try {
         usingLastModifiedFileComparator();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingLastModifiedFileComparator() throws IOException {
      //get the current directory
      File currentDirectory = new File(".");
      LastModifiedFileComparator comparator = new LastModifiedFileComparator();
      File[] sortedFiles = comparator.sort(currentDirectory.listFiles((FileFilter)FileFileFilter.FILE));
      System.out.println("Sorted By Last Modified date: ");
      for(File file:sortedFiles) {
         System.out.println(file.getName() + ", Modified on: " + new Date(file.lastModified()));
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

Sorted By Last Modified date:
.project, Modified on: Thu Oct 12 19:06:45 IST 2017
.classpath, Modified on: Mon Nov 20 13:09:55 IST 2017
input.txt, Modified on: Mon Nov 20 19:27:55 IST 2017

यह एक इनपुटस्ट्रीम प्रॉक्सी है जो पारदर्शी रूप से सभी बाइट्स की एक प्रति लिखता है जो प्रॉक्सी स्ट्रीम से किसी दिए गए आउटपुटस्ट्रीम में पढ़ी जाती हैं। प्रॉक्सी इनपुट स्ट्रीम को बंद कर दिया जाता है, जब इस प्रॉक्सी पर क्लोज़ () विधि को बुलाया जाता है। इसका उपयोग एक समय में सामूहिक रूप से दो धाराओं को संचालित करने के लिए किया जा सकता है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.input.TeeInputStream कक्षा -

public class TeeInputStream
   extends ProxyInputStream

TeeInputStream क्लास का उदाहरण

इस उदाहरण में, TeeInputStream बंद करने से TeeInputStream बंद हो जाता है और साथ ही TeeOutputStream ऑब्जेक्ट बंद हो जाता है।

IOTester.java

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.apache.commons.io.input.TeeInputStream;
import org.apache.commons.io.output.TeeOutputStream;
public class IOTester {
   private static final String SAMPLE = "Welcome to TutorialsPoint. Simply Easy
   Learning.";
   public static void main(String[] args) {
      try {
         usingTeeInputStream();
      }catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingTeeInputStream() throws IOException {
      TeeInputStream teeInputStream = null;
      TeeOutputStream teeOutputStream = null;
      try {
         ByteArrayInputStream inputStream = new
         ByteArrayInputStream(SAMPLE.getBytes("US-ASCII"));
         ByteArrayOutputStream outputStream1 = new ByteArrayOutputStream();
         ByteArrayOutputStream outputStream2 = new ByteArrayOutputStream();
         teeOutputStream = new TeeOutputStream(outputStream1, outputStream2);
         teeInputStream = new TeeInputStream(inputStream, teeOutputStream, true);
         teeInputStream.read(new byte[SAMPLE.length()]);
         System.out.println("Output stream 1: " + outputStream1.toString());
         System.out.println("Output stream 2: " + outputStream2.toString());
      }catch (IOException e) {
         System.out.println(e.getMessage());
      } finally {
         //teeIn.close() closes teeIn and teeOut which in turn closes the out1 and out2.
         try {
            teeInputStream.close();
         } catch (IOException e) {
            System.out.println(e.getMessage());
         }
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

Output stream 1: Welcome to TutorialsPoint. Simply Easy Learning.
Output stream 2: Welcome to TutorialsPoint. Simply Easy Learning.

TeeOutputStream, OutputStream को विभाजित करता है। इसका नाम यूनिक्स 'टी' कमांड के नाम पर रखा गया है। यह एक धारा को दो धाराओं में विभाजित करने की अनुमति देता है।

वर्ग घोषणा

निम्नलिखित के लिए घोषणा है org.apache.commons.io.output.TeeOutputStream कक्षा -

public class TeeOutputStream
   extends ProxyOutputStream

TeeOutputStream क्लास का उदाहरण

इस उदाहरण में, TeeOutputStream पैरामीटर के रूप में दो आउटपुट स्ट्रीम को स्वीकार करता है और TeeOutputStream को डेटा पास करके दोनों आउटपुट स्ट्रीम पर डेटा सेट करता है।

IOTester.java

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import org.apache.commons.io.input.TeeInputStream;
import org.apache.commons.io.output.TeeOutputStream;
public class IOTester {
   private static final String SAMPLE = "Welcome to TutorialsPoint. Simply Easy
   Learning.";
   public static void main(String[] args) {
      try {
         usingTeeInputStream();
      } catch(IOException e) {
         System.out.println(e.getMessage());
      }
   }
   public static void usingTeeInputStream() throws IOException {
      TeeInputStream teeInputStream = null;
      TeeOutputStream teeOutputStream = null;
      try {
         ByteArrayInputStream inputStream = new
         ByteArrayInputStream(SAMPLE.getBytes("US-ASCII"));
         ByteArrayOutputStream outputStream1 = new ByteArrayOutputStream();
         ByteArrayOutputStream outputStream2 = new ByteArrayOutputStream();
         teeOutputStream = new TeeOutputStream(outputStream1, outputStream2);
         teeInputStream = new TeeInputStream(inputStream, teeOutputStream, true);
         teeInputStream.read(new byte[SAMPLE.length()]);
         System.out.println("Output stream 1: " + outputStream1.toString());
         System.out.println("Output stream 2: " + outputStream2.toString());
      } catch (IOException e) {
         System.out.println(e.getMessage());
      } finally {
         //teeIn.close() closes teeIn and teeOut which in turn closes the out1 and out2.
         try {
            teeInputStream.close();
         } catch (IOException e) {
            System.out.println(e.getMessage());
         }
      }
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

Output stream 1: Welcome to TutorialsPoint. Simply Easy Learning.
Output stream 2: Welcome to TutorialsPoint. Simply Easy Learning.