Binary এবং Text Files এর সাথে কাজ করা

File Handling (ফাইল হ্যান্ডলিং) - সি++ স্ট্যান্ডার্ড লাইব্রেরি (C++ Standard Library) - Computer Programming

348

C++ এ binary এবং text ফাইলের সাথে কাজ করার জন্য বিভিন্ন ফাংশন এবং লাইব্রেরি সরঞ্জাম সরবরাহ করা হয়েছে। Text files সাধারণত পাঠযোগ্য ফাইল হয় যেখানে ডেটা মানুষের জন্য পড়তে সক্ষম হয় (যেমন .txt, .csv ইত্যাদি), আর Binary files সেগুলো যেখানে ডেটা সরাসরি বাইনারি ফর্ম্যাটে সঞ্চিত থাকে এবং সেগুলো মানুষের কাছে পাঠযোগ্য নয় (যেমন ইমেজ, অডিও, অথবা অন্যান্য ফাইল ফরম্যাটে)।

C++ এ ফাইল রিডিং, রাইটিং, এবং ম্যানিপুলেশনের জন্য <fstream> লাইব্রেরি ব্যবহৃত হয়, যা std::ifstream, std::ofstream, এবং std::fstream ক্লাস প্রদান করে। নিচে text files এবং binary files এর সাথে কাজ করার কিছু উদাহরণ দেওয়া হলো।


১. Text File এর সাথে কাজ করা

Text files এর সাথে কাজ করতে std::ifstream (input file stream) এবং std::ofstream (output file stream) ক্লাস ব্যবহার করা হয়। এগুলো ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখা সহজ করে।

উদাহরণ: Text File এ লেখা

#include <iostream>
#include <fstream>
#include <string>

int main() {
    // ফাইল তৈরি বা খোলা
    std::ofstream outFile("example.txt");

    if (outFile.is_open()) {
        // ফাইলে লেখা
        outFile << "Hello, World!" << std::endl;
        outFile << "This is a text file example." << std::endl;
        outFile.close(); // ফাইল বন্ধ
        std::cout << "Data written to file successfully." << std::endl;
    } else {
        std::cout << "Unable to open file for writing." << std::endl;
    }

    return 0;
}

আউটপুট:

Data written to file successfully.

এখানে, "example.txt" ফাইলে "Hello, World!" এবং "This is a text file example." লেখা হয়েছে।

উদাহরণ: Text File থেকে পড়া

#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::ifstream inFile("example.txt");

    if (inFile.is_open()) {
        std::string line;
        while (getline(inFile, line)) {
            std::cout << line << std::endl;  // ফাইলের প্রতিটি লাইন প্রিন্ট করা
        }
        inFile.close();  // ফাইল বন্ধ
    } else {
        std::cout << "Unable to open file for reading." << std::endl;
    }

    return 0;
}

আউটপুট:

Hello, World!
This is a text file example.

এখানে, "example.txt" ফাইল থেকে প্রতিটি লাইন পড়ে স্ক্রীনে প্রদর্শন করা হয়েছে।


২. Binary File এর সাথে কাজ করা

Binary files এর সাথে কাজ করতে std::ifstream এবং std::ofstream এর পাশাপাশি ফাইলের বাইনারি মোডে ওপেন করার জন্য "binary" ফ্ল্যাগ ব্যবহার করা হয়। বাইনারি ফাইলের মধ্যে ডেটা সরাসরি মেমরিতে পড়া বা লেখা হয়।

উদাহরণ: Binary File এ লেখা

#include <iostream>
#include <fstream>

int main() {
    int num = 12345;
    
    // বাইনারি মোডে ফাইল খুলুন
    std::ofstream outFile("example.bin", std::ios::binary);

    if (outFile.is_open()) {
        // বাইনারি ফাইলের মধ্যে ডেটা লেখা
        outFile.write(reinterpret_cast<char*>(&num), sizeof(num));
        outFile.close();  // ফাইল বন্ধ
        std::cout << "Data written to binary file successfully." << std::endl;
    } else {
        std::cout << "Unable to open file for writing." << std::endl;
    }

    return 0;
}

আউটপুট:

Data written to binary file successfully.

এখানে, একটি int টাইপের মান num বাইনারি ফরম্যাটে "example.bin" ফাইলে লেখা হয়েছে। reinterpret_cast<char*> ব্যবহার করে আমরা int টাইপের ডেটা কে বাইনারি রূপে কাস্ট করেছি এবং write() ফাংশন ব্যবহার করে তা ফাইলে লিখেছি।

উদাহরণ: Binary File থেকে পড়া

#include <iostream>
#include <fstream>

int main() {
    int num;

    // বাইনারি মোডে ফাইল খুলুন
    std::ifstream inFile("example.bin", std::ios::binary);

    if (inFile.is_open()) {
        // বাইনারি ফাইল থেকে ডেটা পড়া
        inFile.read(reinterpret_cast<char*>(&num), sizeof(num));
        inFile.close();  // ফাইল বন্ধ
        std::cout << "Read number from binary file: " << num << std::endl;
    } else {
        std::cout << "Unable to open file for reading." << std::endl;
    }

    return 0;
}

আউটপুট:

Read number from binary file: 12345

এখানে, "example.bin" ফাইল থেকে বাইনারি ডেটা পড়ে এটি num ভেরিয়েবলে সংরক্ষিত হয়েছে।


৩. Text এবং Binary File এর মধ্যে পার্থক্য

ফিচারText FileBinary File
মানুষের জন্য পড়াপাঠযোগ্য (Readable by humans)পাঠযোগ্য নয় (Not human-readable)
ফরম্যাটপাঠযোগ্য টেক্সট (Character encoding)বাইনারি ডেটা (Raw binary data)
লেখা এবং পড়া<< এবং >> অপারেটর ব্যবহারwrite() এবং read() ফাংশন ব্যবহার
প্রতিনিধিত্বপ্রতিটি চরিত্র একটি আউটপুট ভ্যালুডেটা সরাসরি মেমরি অনুযায়ী স্টোর
ফাইল সাইজসাধারণত ছোট এবং কম্প্যাক্টবড় বা আরও কম্প্যাক্ট হতে পারে

উপসংহার

  • Text Files: সাধারণত মানুষের দ্বারা পড়া যায় এবং সাধারণ ফাংশন দিয়ে লেখা এবং পড়া হয়। std::ofstream এবং std::ifstream ব্যবহার করে ফাইলের ভিতরে টেক্সট লিখা এবং পড়া হয়।
  • Binary Files: বাইনারি ডেটা সরাসরি ফাইলের মধ্যে পড়া এবং লেখা হয়। বাইনারি ফাইলের সাথে কাজ করার জন্য "binary" ফ্ল্যাগ ব্যবহার করা হয়, এবং write()read() ফাংশনগুলো ব্যবহার করা হয়।

এই দুটি ফাইল ম্যানিপুলেশন ফাংশন সি++ প্রোগ্রামিংয়ে বিভিন্ন ধরনের ডেটা সঞ্চয় এবং পরিচালনার জন্য অত্যন্ত গুরুত্বপূর্ণ।

Content added By
Promotion

Are you sure to start over?

Loading...