Java File I/O

Introduction to Java File I/O

जब भी यूज़र से program में input लेने की बात होती है तो ऐसा program run करवाने के बाद console की मदद से किया जाता है और output भी console पर ही देखा जाता है। कुछ software ऐसे होते है जो बहुत सारे data को एक साथ execute करते है। इसलिए उनमें input भी इतना ही अधिक दिया जाता है। लेकिन इतना सारा input किसी human के द्वारा हाथों से नहीं किया जा सकता है। Input के साथ ही कई बार output भी इतना अधिक हो सकता है की किसी human द्वारा इसको computer की screen पर देखना possible नहीं होता है। ऐसा भी हो सकता है की इस output की आपको किसी और execution में जरुरत पड़े या आप इसको print करना चाहते है। ऐसी situation में आप java के File I/O mechanism को यूज़ कर सकते है।

Java कुछ ऐसी classes provide करती है जिनकी मदद से आप input भी किसी file से read कर सकते है और output भी किसी file में store करवा सकते है। मेरा मतलब है यदि आप चाहे तो input console से लेने की बजाय किसी file से read कर सकते है और output भी console पर दिखाने की बजाए किसी file में store करके दिखा सकते है।

Files के द्वारा input और output operations perform करने के लिए आप stream को यूज़ करते है। Data की sequence को stream कहते है। Input stream से input लिया जाता है। और output stream से output लिया जाता है। Java में streams 2 तरह की होती है। Byte stream में data bytes की form में होता है और character stream में data character की form में होता है। इन दोनों तरह की streams के बारे में निचे दिया जा रहा है।

Byte Stream

Byte stream में data bytes की form में होता है। इसमें input और output के लिए 2 classes provide की गयी है। ये दोनों abstract classes होती है। ये classes ऐसे methods provide करती है जिनकी मदद से आप files के साथ operations perform करते है। इन classes के बारे में निचे दिया जा रहा है।

InputStream

ये एक abstract class है। ये byte input stream class होती है। FileInputStream class इसे extend करती है। और इसके methods को file operations के लिए यूज़ करती है।

Method Description
int read() Reads data from file in form of bytes.
void close() Closes input stream

FileInputStream एक byte stream input class है। इस class का object create करके आप byte input stream create करते है। फिर इस object पर different methods call करके files के साथ operations perform करते है।

import java.io.*;

public class FileIOExample
{
     public static void main(String args[]) throws IOException
     {
         FileInputStream in = new FileInputStream("directory-address-of-file");
         int a;

         while((a = in.read()) != -1)
         {
              System.out.println((char)a);
              in.close();
         }
     }
}

OutputStream

ये एक abstract class होती है। ये एक byte output stream class है। FileOutputStream class इसे extend करती है। इस class के कुछ methods निचे दिए हुए है जो FileOutputStream class यूज़ करती है।

Method Description
int write() Writes data to file in form of bytes.
void close() Closes output stream

FileOutputStream class एक byte stream output class है। सबसे पहले आप इस class का object क्रिएट करते है और फिर उस object पर write method call करके bytes() को file में write() करते है।

import java.io.*;

public class FileIOExample
{
    public static void main(String args[]) throws IOException
    {
        FileOutputStream out = new FileOutputStream("directory-address-to-store-file");
        a = 5;
        out.write(a);
        out.close();
    }
}

Character Stream

Character stream में data bytes में ना होकर सीधा characters की form में होता है। Character stream में input और ouput के लिए 2 abstract classes यूज़ की जाती है। इन classes के बारे में निचे दिया जा रहा है।

Reader

Reader एक abstract class है। ये एक character input stream class है। FileReader class इसे extend करती है। इस class के methods निचे दिए जा रहे है।

Method Description
int read() Reads data from file in form of characters.
void close() Closes output stream

FileReader एक character input stream class है। ये Reader class को extend करती है। इस class का object create करके आप character input stream create करते है। फिर उस object पर read method call करके data read करते है।

import java.io.*;

public class FileIOExample
{
   FileReader in = new FileReader("director-address-of-file");
   int a;

   while((a=in.read())!=-1)
   {
        System.out.print((char)a);
        in.close();
   }
}

Writer

ये एक abstract class है। ये एक character output stream class है। FileWriter class इसे extend करती है। इस class के कुछ methods होते है जिन्हें FileWriter class यूज़ करती है।

Method Description
int read() Writes data to file in character form.
void close() Closes output stream

FileWriter class का object create करके आप character output stream क्रिएट करते है। फिर उस object पर write() method call करके data write() करते है।

import java.io.*;

public class FileIOExample
{
   public static void main(String args[]) throws IOException
   {
       FileWriter out = new FileWriter("directory-addres-of-File");     
       int a = 5;
       out.write();
       out.close();
   }
}