উদাহরণ সহ FileInputStream এবং FileOutputStream ব্যবহার

FileInputStream এবং FileOutputStream - জাভা আইও (Java.io Package) - Java Technologies

292

FileInputStream এবং FileOutputStream ক্লাস দুটি byte streams এর অংশ যা Java-তে ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখা করতে ব্যবহৃত হয়। FileInputStream ফাইল থেকে বাইনারি ডেটা পড়তে ব্যবহৃত হয়, এবং FileOutputStream বাইনারি ডেটা ফাইলে লেখার জন্য ব্যবহৃত হয়।

এই ক্লাস দুটি সাধারণত ব্যবহৃত হয় যখন আপনি ফাইলের বাইনারি ডেটা (যেমন ইমেজ, অডিও, ভিডিও, বা অন্য কোনো বাইনারি ফাইল) পড়তে বা লেখতে চান।


FileInputStream এর ভূমিকা:

FileInputStream ক্লাসটি একটি ফাইল থেকে বাইনারি ডেটা পড়তে ব্যবহৃত হয়। এটি byte stream ক্লাস, তাই এটি ডেটা পড়ার সময় শুধুমাত্র ৮-বিট আকারে (byte) ডেটা পড়ে এবং এটি InputStream এর সাবক্লাস।

FileInputStream এর গুরুত্বপূর্ণ মেথড:

  • int read(): একটি বাইট পড়ে এবং এটি int আকারে রিটার্ন করে (EOF হলে -1 রিটার্ন করে)।
  • int read(byte[] b): একটি বাফারে একাধিক বাইট পড়ে।
  • long skip(long n): স্ট্রিম থেকে n বাইট উপেক্ষা করে।
  • int available(): স্ট্রিমে পড়ার জন্য কতটুকু ডেটা আছে তা রিটার্ন করে।
  • void close(): স্ট্রিম বন্ধ করে।

FileOutputStream এর ভূমিকা:

FileOutputStream ক্লাসটি একটি ফাইলে বাইনারি ডেটা লেখার জন্য ব্যবহৃত হয়। এটি byte stream ক্লাস, তাই এটি ডেটা লেখার সময় শুধুমাত্র ৮-বিট আকারে (byte) ডেটা লেখে এবং এটি OutputStream এর সাবক্লাস।

FileOutputStream এর গুরুত্বপূর্ণ মেথড:

  • void write(int b): একটি বাইট লেখে।
  • void write(byte[] b): একাধিক বাইট একটি বাফারে লেখে।
  • void flush(): সমস্ত ডেটা স্ট্রিমে পাঠানোর জন্য ফ্লাশ করে।
  • void close(): স্ট্রিম বন্ধ করে।

FileInputStream এবং FileOutputStream এর উদাহরণ

১. FileInputStream উদাহরণ (ফাইল থেকে ডেটা পড়া):

এই উদাহরণে, আমরা FileInputStream ব্যবহার করে একটি ফাইল থেকে ডেটা পড়বো এবং তা কনসোলে প্রিন্ট করব।

import java.io.FileInputStream;
import java.io.IOException;

public class FileInputStreamExample {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("example.txt")) {
            int byteData;
            while ((byteData = fis.read()) != -1) {  // ফাইল থেকে একটি বাইট পড়া
                System.out.print((char) byteData);  // বাইটকে ক্যারেক্টারে কনভার্ট করে প্রিন্ট করা
            }
        } catch (IOException e) {
            System.out.println("An error occurred while reading the file.");
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • FileInputStream ব্যবহার করে example.txt ফাইল থেকে বাইনারি ডেটা পড়া হচ্ছে।
  • fis.read() মেথডটি প্রতিবার একটি বাইট পড়ে এবং এটি character আকারে কনভার্ট করে কনসোলে প্রিন্ট করা হচ্ছে।

২. FileOutputStream উদাহরণ (ফাইলে ডেটা লেখা):

এই উদাহরণে, আমরা FileOutputStream ব্যবহার করে একটি ফাইলে টেক্সট লেখবো।

import java.io.FileOutputStream;
import java.io.IOException;

public class FileOutputStreamExample {
    public static void main(String[] args) {
        String data = "Hello, this is a test file!";
        try (FileOutputStream fos = new FileOutputStream("output.txt")) {
            fos.write(data.getBytes());  // স্ট্রিং থেকে বাইনারি ডেটা ফাইলে লেখা
            System.out.println("Data written to file successfully.");
        } catch (IOException e) {
            System.out.println("An error occurred while writing to the file.");
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • FileOutputStream ব্যবহার করে output.txt ফাইলে ডেটা লেখা হচ্ছে।
  • data.getBytes() মেথডটি স্ট্রিংকে byte array-তে রূপান্তরিত করে এবং তারপর fos.write() মেথড দ্বারা ফাইলে লেখা হয়।

৩. ফাইল কপি উদাহরণ (FileInputStream এবং FileOutputStream ব্যবহার):

এই উদাহরণে, আমরা একটি ফাইল থেকে ডেটা পড়ে এবং সেই ডেটা অন্য একটি ফাইলে কপি করবো।

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileCopyExample {
    public static void main(String[] args) {
        try (FileInputStream fis = new FileInputStream("source.txt");
             FileOutputStream fos = new FileOutputStream("destination.txt")) {
            
            int byteData;
            while ((byteData = fis.read()) != -1) {  // ফাইল থেকে একটি বাইট পড়া
                fos.write(byteData);  // ডেটা destination ফাইলে লেখা
            }
            System.out.println("File copied successfully.");
        } catch (IOException e) {
            System.out.println("An error occurred while copying the file.");
            e.printStackTrace();
        }
    }
}

ব্যাখ্যা:

  • FileInputStream এবং FileOutputStream ব্যবহার করে একটি ফাইলের ডেটা পড়ে এবং তা অন্য ফাইলে কপি করা হচ্ছে।
  • fis.read() মেথড দ্বারা একটি বাইট পড়া হচ্ছে এবং fos.write() মেথড দ্বারা তা destination.txt ফাইলে লেখা হচ্ছে।

FileInputStream এবং FileOutputStream এর সুবিধা:

  1. বাইনারি ডেটা প্রক্রিয়া: Byte Streams বাইনারি ডেটা (যেমন ইমেজ, অডিও, ভিডিও) পড়তে এবং লেখতে সক্ষম।
  2. সহজ এবং কার্যকরী: ফাইলের সাথে কাজ করার জন্য FileInputStream এবং FileOutputStream খুবই সহজ এবং সরল পদ্ধতি।
  3. কম্প্লেক্স ফাইল ফরম্যাট: Byte Streams ব্যবহার করে আপনি JPEG, MP3, PDF ফাইলের মতো বাইনারি ফাইলের সাথে কাজ করতে পারবেন।

সীমাবদ্ধতা:

  1. টেক্সট ডেটার জন্য উপযুক্ত নয়: Character Streams টেক্সট ডেটার জন্য বেশি কার্যকরী। টেক্সট ফাইলের জন্য FileReader বা BufferedReader ব্যবহার করা উচিত।
  2. এনকোডিং ইস্যু: বাইনারি ডেটার সাথে কাজ করার সময় কিছু encoding সমস্যা হতে পারে, বিশেষ করে টেক্সট ফাইলের ক্ষেত্রে।

  • FileInputStream এবং FileOutputStream Java I/O সিস্টেমে byte streams এর অংশ এবং বাইনারি ডেটা পড়তে এবং লেখতে ব্যবহৃত হয়।
  • Byte Streams যখন আপনি বাইনারি ডেটা (যেমন ইমেজ, ভিডিও, অডিও) প্রক্রিয়া করছেন তখন ব্যবহার করা উচিত।
  • FileInputStream এবং FileOutputStream ক্লাসগুলি সহজ এবং সরল উপায়ে ফাইল থেকে ডেটা পড়া এবং লেখা করতে সহায়ক।
Content added By
Promotion

Are you sure to start over?

Loading...