কম্পিউটার টিউটোরিয়াল

জাভাতে EOFException হ্যান্ডলিং পদ্ধতি

EOFException (End of File Exception) একটি চেকড এক্সেপশন যা ইনপুট স্ট্রিম থেকে ডেটা পড়ার সময় ফাইলের শেষে পৌঁছালে নিক্ষেপ করা হয়। এটি বিশেষ করে DataInputStream এর মেথডগুলোর সাথে ঘটে (যেমন readChar(), readInt(), readBoolean())।

উদাহরণ: EOFException ঘটা

import java.io.DataInputStream;
import java.io.FileInputStream;

public class EOFExample {
    public static void main(String[] args) throws Exception {
        DataInputStream dis = new DataInputStream(new FileInputStream("D:\\data.txt"));
        while(true) {
            char ch = dis.readChar(); // EOF-এ পৌঁছালে EOFException
            System.out.print(ch);
        }
    }
}

রানটাইম এক্সেপশন

Hello how are you
Exception in thread "main" java.io.EOFException
    at java.io.DataInputStream.readChar(Unknown Source)
    at EOFExample.main(EOFExample.java:11)

EOFException হ্যান্ডলিংয়ের পদ্ধতি

পদ্ধতি ১: Try-Catch ব্লকে EOFException ক্যাচ করে ব্রেক করা

import java.io.DataInputStream;
import java.io.EOFException;
import java.io.FileInputStream;
import java.io.IOException;

public class HandlingEOF {
    public static void main(String[] args) throws Exception {
        DataInputStream dis = new DataInputStream(new FileInputStream("D:\\data.txt"));
        while(true) {
            try {
                char ch = dis.readChar();
                System.out.print(ch);
            } catch (EOFException e) {
                System.out.println("\nEnd of file reached");
                break; // লুপ থেকে বের হওয়া
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

আউটপুট

Hello how are you
End of file reached

পদ্ধতি ২: FileInputStream / BufferedReader ব্যবহার (EOFException এড়ানো)

FileInputStream.read() EOF-এ -1 রিটার্ন করে (এক্সেপশন নিক্ষেপ করে না)। BufferedReader.readLine() EOF-এ null রিটার্ন করে।

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class ReadWithoutEOF {
    public static void main(String[] args) {
        try (BufferedReader br = new BufferedReader(new FileReader("D:\\data.txt"))) {
            String line;
            while ((line = br.readLine()) != null) { // null চেক করে লুপ বন্ধ
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

সুপারিশ: টেক্সট ফাইল পড়ার জন্য BufferedReader বা Scanner ব্যবহার করুন (EOFException হ্যান্ডলিং দরকার নয়)। বাইনারি ডেটা/প্রিমিটিভ টাইপ পড়ার সময় DataInputStream ব্যবহার করলে EOFException হ্যান্ডলিং বাধ্যতামূলক।

  1. জাভাতে হায়ারার্কিক্যালি ডাইরেক্টরি তৈরি করা

  2. জাভাতে ডিরেক্টরি হায়ারার্কি (Directory Hierarchy) কীভাবে তৈরি করবেন?

  3. জাভাতে JSON অবজেক্ট ফাইলে লিখুন

  4. জাভা গাইড: API টেস্টিংয়ের জন্য JSON ফাইলকে স্ট্রিং-এ পড়া