কম্পিউটার

জাভাতে ফাইলগুলি কীভাবে পড়তে হয়

জাভা ফাইল পড়ার জন্য বিভিন্ন পদ্ধতি প্রদান করে। এই পদ্ধতিগুলির প্রতিটি বিভিন্ন পরিস্থিতিতে বিভিন্ন ধরণের ফাইল পড়ার জন্য উপযুক্ত। কিছু লম্বা ফাইল পড়ার জন্য ভাল, অন্যগুলি ছোট ফাইল পড়ার জন্য ভাল, ইত্যাদি।

এই টিউটোরিয়ালে, আমরা ফাইলগুলি পড়ার জন্য নিম্নলিখিত জাভা ক্লাসগুলি ব্যবহার করব

  • বাফারডরিডার
  • ফাইলগুলি
  • স্ক্যানার

পুরো টিউটোরিয়াল জুড়ে, আমরা src-এ সংরক্ষিত একটি ফাইল ব্যবহার করছি ডিরেক্টরি যেখানে ফাইলের পথ src/file.txt .

এগিয়ে যাওয়ার আগে এই ফাইলে পাঠ্যের কয়েকটি লাইন সংরক্ষণ করুন৷

দ্রষ্টব্য:সেরা কোডিং অনুশীলনে লেগে থাকতে এই বাস্তবায়নগুলি ব্যবহার করার সময় আপনাকে সঠিকভাবে ত্রুটিগুলি পরিচালনা করতে হবে।

বাফারডরিডার দিয়ে জাভাতে টেক্সট ফাইল পড়া

BufferedReader ক্লাস একটি অক্ষর-ইনপুট স্ট্রিম পড়ে। এটি পড়ার প্রক্রিয়াটিকে আরও দক্ষ করার জন্য 8 KB এর ডিফল্ট আকার সহ একটি বাফারে অক্ষরগুলিকে বাফার করে। আপনি যদি লাইন দ্বারা একটি ফাইল লাইন পড়তে চান, BufferedReader ব্যবহার করা একটি ভাল পছন্দ।

BufferedReader বড় ফাইল পড়তে দক্ষ।

import java.io.*;

public class FileReaderWithBufferedReader {

    public static void main(String[] args) throws IOException{We
        String file = "src/file.txt";
        BufferedReader bufferedReader = new BufferedReader(new FileReader(file));

        String curLine;
        while ((curLine = bufferedReader.readLine()) != null){
            //process the line as required
            System.out.println(curLine);
        }
        bufferedReader.close();
    }
}

readline() ফাইলের শেষ প্রান্তে পৌঁছে গেলে মেথড নাল রিটার্ন করে।

দ্রষ্টব্য:পড়া শেষ হলে ফাইলটি বন্ধ করতে ভুলবেন না।

বাফারডরিডার দিয়ে জাভাতে UTF-8 এনকোড করা ফাইল পড়া

আমরা BufferedReader ব্যবহার করতে পারি একটি UTF-8 এনকোড করা ফাইল পড়ার জন্য ক্লাস।

এইবার, আমরা একটি InputStreamReader পাস করি একটি BufferedReader তৈরি করার সময় অবজেক্ট উদাহরণ।

import java.io.*;

public class EncodedFileReaderWithBufferedReader {

    public static void main(String[] args) throws IOException {
        String file = "src/fileUtf8.txt";
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(file), "UTF-8"));

        String curLine;
        while ((curLine = bufferedReader.readLine()) != null){
            //process the line as you require
            System.out.println(curLine);
        }
    }
}

একটি ফাইল পড়ার জন্য জাভা ফাইল ক্লাস ব্যবহার করা

জাভা Files জাভা NIO-তে Java 7-এ প্রবর্তিত ক্লাস, সম্পূর্ণরূপে স্ট্যাটিক পদ্ধতি নিয়ে গঠিত যা ফাইলগুলিতে কাজ করে।

Files ব্যবহার করে ক্লাস, আপনি একটি অ্যারেতে একটি ফাইলের সম্পূর্ণ বিষয়বস্তু পড়তে পারেন। এটি ছোট ফাইল পড়ার জন্য এটি একটি ভাল পছন্দ করে তোলে৷

আসুন দেখি কিভাবে আমরা এই উভয় পরিস্থিতিতে ফাইল ক্লাস ব্যবহার করতে পারি।

ফাইল ক্লাস সহ জাভাতে ছোট ফাইল পড়া

readAllLines() Files এর পদ্ধতি ক্লাস ফাইলের সম্পূর্ণ বিষয়বস্তু পড়ার অনুমতি দেয় এবং প্রতিটি লাইনকে স্ট্রিং হিসাবে একটি অ্যারেতে সংরক্ষণ করে।

আপনি Path ব্যবহার করতে পারেন Files থেকে ফাইলের পাথ পেতে ক্লাস ক্লাস Path গ্রহণ করে ফাইলের বস্তু।

import java.io.IOException;
import java.nio.file.*;
import java.util.*;

public class SmallFileReaderWithFiles {

    public static void main(String[] args) throws IOException {
        String file = "src/file.txt";
        Path path = Paths.get(file);
        List<String> lines = Files.readAllLines(path);
    }
}

আপনি readAllBytes() ব্যবহার করতে পারেন একটি স্ট্রিং অ্যারের পরিবর্তে একটি বাইট অ্যারেতে ফাইলে সংরক্ষিত ডেটা পুনরুদ্ধার করতে৷

byte[] bytes = Files.readAllBytes(path);

ফাইল ক্লাস সহ জাভাতে বড় ফাইল পড়া

আপনি যদি Files সহ একটি বড় ফাইল পড়তে চান ক্লাস, আপনি newBufferedReader() ব্যবহার করতে পারেন BufferedReader এর একটি উদাহরণ পাওয়ার পদ্ধতি ক্লাস করুন এবং BufferedReader ব্যবহার করে লাইন দ্বারা ফাইল লাইন পড়ুন .

import java.io.*;
import java.nio.file.*;

public class LargeFileReaderWithFiles {

    public static void main(String[] args) throws IOException {
        String file = "src/file.txt";
        Path path = Paths.get(file);
        BufferedReader bufferedReader = Files.newBufferedReader(path);

        String curLine;
        while ((curLine = bufferedReader.readLine()) != null){
            System.out.println(curLine);
        }
        bufferedReader.close();
    }
}

Files.lines() দিয়ে ফাইল পড়া

Java 8 পুরো ফাইলটিকে Stream-এ পড়ার জন্য ফাইল ক্লাসে একটি নতুন পদ্ধতি চালু করেছে স্ট্রিং।

import java.io.IOException;
import java.nio.file.*;
import java.util.stream.Stream;

public class FileReaderWithFilesLines {

    public static void main(String[] args) throws IOException {
        String file = "src/file.txt";
        Path path = Paths.get(file);
        Stream<String> lines = Files.lines(path);

        lines.forEach(s -> System.out.println(s));
        lines.close();
    }
}

স্ক্যানার দিয়ে জাভাতে টেক্সট ফাইল পড়া

Scanner ক্লাস একটি প্রদত্ত ডিলিমিটার ব্যবহার করে একটি ফাইলের বিষয়বস্তুকে অংশে বিভক্ত করে এবং এটিকে অংশে ভাগ করে পড়ে। এই পদ্ধতিটি একটি বিভাজন দ্বারা পৃথক করা বিষয়বস্তু পড়ার জন্য সবচেয়ে উপযুক্ত৷

উদাহরণস্বরূপ, Scanner ক্লাস সাদা স্পেস দ্বারা বিভক্ত পূর্ণসংখ্যার তালিকা বা কমা দ্বারা পৃথক করা স্ট্রিংগুলির একটি তালিকা পড়ার জন্য আদর্শ৷

Scanner এর ডিফল্ট ডিলিমিটার ক্লাস হোয়াইটস্পেস। কিন্তু আপনি ডিলিমিটারটিকে অন্য অক্ষর বা নিয়মিত অভিব্যক্তিতে সেট করতে পারেন। এটিতে পরবর্তী বিভিন্ন পদ্ধতিও রয়েছে, যেমন next() , nextInt() , nextLine() , এবং nextByte() , বিষয়বস্তুকে বিভিন্ন প্রকারে রূপান্তর করতে।

import java.io.IOException;
import java.util.Scanner;
import java.io.File;

public class FileReaderWithScanner {

    public static void main(String[] args) throws IOException{
        String file = "src/file.txt";
        Scanner scanner = new Scanner(new File(file));
        scanner.useDelimiter(" ");

        while(scanner.hasNext()){
            String next = scanner.next();
            System.out.println(next);
        }
        scanner.close();
    }
}

উপরের উদাহরণে, আমরা ডিলিমিটারটিকে হোয়াইটস্পেসে সেট করি এবং next() ব্যবহার করি। হোয়াইটস্পেস দ্বারা পৃথক করা বিষয়বস্তুর পরবর্তী অংশ পড়ার পদ্ধতি।

একটি সম্পূর্ণ ফাইল পড়া

আপনি Scanner ব্যবহার করতে পারেন একটি লুপ না চালিয়ে একবারে পুরো ফাইলটি পড়ার জন্য ক্লাস। আপনাকে “\\Z” পাস করতে হবে এটির জন্য বিভাজনকারী হিসাবে৷

scanner.useDelimiter("\\Z");
System.out.println(scanner.next());
scanner.close();
দ্রষ্টব্য:স্ক্যানার ক্লাস সিঙ্ক্রোনাইজ করা হয়নি এবং তাই, থ্রেড-নিরাপদ নয়।

উপসংহার

আপনি এই টিউটোরিয়ালে যেমন দেখেছেন, জাভা অনেক পদ্ধতি অফার করে যা আপনি আপনার হাতে থাকা কাজের প্রকৃতি অনুসারে পাঠ্য ফাইলগুলি পড়ার জন্য বেছে নিতে পারেন। আপনি BufferedReader ব্যবহার করতে পারেন লাইন দ্বারা লাইন বড় ফাইল পড়তে.

আপনি যদি একটি ফাইল পড়তে চান যেটির বিষয়বস্তু একটি বিভেদক দ্বারা পৃথক করা আছে, তাহলে Scanner ব্যবহার করুন ক্লাস।

এছাড়াও আপনি Java NIO Files ব্যবহার করতে পারেন ছোট এবং বড় উভয় ফাইল পড়ার জন্য ক্লাস।


  1. জাভাতে একটি CSV ফাইল থেকে ডেটা কীভাবে পড়তে হয়?

  2. জাভাতে একটি বৈশিষ্ট্য ফাইল থেকে ডেটা কীভাবে পড়তে হয়?

  3. রুবিতে ফাইলগুলি কীভাবে পড়তে এবং লিখতে হয় (উদাহরণ সহ)

  4. উইন্ডোজ 10 এ মেমরি ডাম্প ফাইলগুলি কীভাবে পড়বেন