File Handling (ফাইল হ্যান্ডলিং)

রুবি প্রোগ্রামিং (Ruby Programming) - Computer Programming

239

রুবি ফাইল হ্যান্ডলিংয়ের জন্য শক্তিশালী এবং সহজ উপায় প্রদান করে। এটি ফাইল খুলতে, পড়তে, লিখতে এবং মুছতে সাহায্য করে। রুবি স্ট্যান্ডার্ড লাইব্রেরির মধ্যে File এবং IO ক্লাস ব্যবহার করে ফাইলের সাথে ইন্টারঅ্যাক্ট করা যায়।

এখানে ফাইল হ্যান্ডলিংয়ের কিছু গুরুত্বপূর্ণ ধারণা এবং উদাহরণ দেওয়া হলো।


১. ফাইল খোলা (Opening a File)

রুবিতে একটি ফাইল খুলতে File.open মেথড ব্যবহার করা হয়। এই মেথডের মাধ্যমে আপনি একটি ফাইল পড়তে, লিখতে অথবা এডিট করতে পারেন।

file = File.open("example.txt", "r")  # "r" stands for read mode

এখানে "r" হল মোড, যা নির্দেশ করে ফাইলটি পড়ার জন্য খোলা হয়েছে। এছাড়াও অন্যান্য কিছু মোড রয়েছে, যেমন:

  • "w": লেখার জন্য ফাইল খোলা। যদি ফাইলটি আগে থেকে থাকে, তা মুছে ফেলা হবে।
  • "a": ফাইলের শেষে নতুন লেখা অ্যাড করা।
  • "r+": ফাইল পড়া এবং লেখার জন্য।
  • "w+": ফাইল লেখার জন্য, যদি ফাইলটি না থাকে তবে নতুন ফাইল তৈরি করবে।

২. ফাইল পড়া (Reading a File)

ফাইলের বিভিন্ন পদ্ধতিতে পড়া সম্ভব। কিছু উদাহরণ:

১. read মেথড:

file = File.open("example.txt", "r")
content = file.read
puts content
file.close

এখানে, read মেথডের মাধ্যমে পুরো ফাইলের কনটেন্ট একবারে পড়া হয়। file.close দিয়ে ফাইলটি বন্ধ করা হয়।

২. each_line মেথড:

file = File.open("example.txt", "r")
file.each_line do |line|
  puts line
end
file.close

এখানে, each_line মেথডের মাধ্যমে ফাইলের প্রতিটি লাইনে লুপ করা হয়েছে এবং প্রতিটি লাইনের কনটেন্ট প্রিন্ট করা হয়েছে।

৩. readlines মেথড:

file = File.open("example.txt", "r")
lines = file.readlines
puts lines
file.close

এখানে, readlines মেথডের মাধ্যমে ফাইলের প্রতিটি লাইন একটি অ্যারেতে সঞ্চিত হচ্ছে।


৩. ফাইল লেখা (Writing to a File)

ফাইলের মধ্যে নতুন ডেটা লেখার জন্য "w", "a", বা "w+" মোড ব্যবহার করা হয়।

১. write মেথড:

file = File.open("output.txt", "w")
file.write("Hello, Ruby!")
file.close

এখানে, "output.txt" ফাইলে "Hello, Ruby!" লেখা হয়েছে।

২. puts মেথড:

file = File.open("output.txt", "w")
file.puts("Hello, Ruby!")
file.puts("Welcome to file handling.")
file.close

puts মেথড একে একে নতুন লাইনে লেখা যোগ করতে ব্যবহার করা হয়।

৩. << অপারেটর:

file = File.open("output.txt", "w")
file << "Hello, Ruby!"
file.close

এখানে, << অপারেটরের মাধ্যমে ফাইলের মধ্যে লেখা হয়েছে। এটি write মেথডের মতোই কাজ করে।

৪. এ্যাপেন্ড মোডে লেখা (Append Mode):

file = File.open("output.txt", "a")
file.puts("Appended text.")
file.close

এখানে "a" মোডের মাধ্যমে ফাইলের শেষে নতুন লেখা অ্যাড করা হয়েছে, পুরনো কনটেন্ট মুছে যায়নি।


৪. ফাইল বন্ধ করা (Closing a File)

ফাইলটি কাজ করার পর, close মেথড ব্যবহার করে ফাইল বন্ধ করা উচিত। এটি ফাইল হ্যান্ডলিংয়ের একটি ভাল অভ্যাস। ফাইল বন্ধ না করলে ফাইল লক হয়ে যেতে পারে এবং এটি সিস্টেমের উপর চাপ ফেলতে পারে।

file = File.open("example.txt", "r")
# Perform some file operations
file.close  # Always close the file after use

৫. File.open ব্লক ফর্ম (Block Form of File.open)

রুবিতে ফাইল হ্যান্ডলিংয়ের একটি আরও ভাল পদ্ধতি হল ব্লক ফর্মের মাধ্যমে ফাইল খুলা এবং কাজ শেষে স্বয়ংক্রিয়ভাবে ফাইলটি বন্ধ করা। এটি একটি block ব্যবহার করে করা হয়।

File.open("example.txt", "r") do |file|
  content = file.read
  puts content
end  # file is automatically closed after the block execution

এখানে, ব্লক ফর্মে ফাইলটি খুলে দেওয়া হয়েছে, এবং কাজ শেষে এটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে, আপনাকে close মেথড কল করার দরকার হবে না।


৬. ফাইল মুছা (Deleting a File)

রুবিতে File.delete মেথড ব্যবহার করে ফাইল মুছে ফেলা যায়।

File.delete("example.txt")

এখানে, "example.txt" ফাইলটি মুছে ফেলা হবে।


৭. ফাইল প্রপার্টিজ (File Properties)

রুবি দিয়ে আপনি ফাইলের বিভিন্ন প্রপার্টি বা তথ্য পেতে পারেন, যেমন সাইজ, অবস্থান, তৈরি তারিখ ইত্যাদি।

file = "example.txt"
puts File.size(file)         # File size in bytes
puts File.exist?(file)       # Check if file exists
puts File.mtime(file)       # File modification time

৮. ফাইলের অধিকার (File Permissions)

রুবিতে File.chmod মেথড ব্যবহার করে আপনি ফাইলের পারমিশন (permissions) পরিবর্তন করতে পারেন।

File.chmod(0644, "example.txt")  # Change file permissions

এখানে, 0644 ফাইলের পারমিশন নির্ধারণ করছে (owner read/write, others read only)।


সারসংক্ষেপ

রুবি ফাইল হ্যান্ডলিংয়ের জন্য শক্তিশালী মেথড সরবরাহ করে যা ফাইল তৈরি, পড়া, লেখা, মুছা, এবং অন্যান্য কার্যক্রম সহজ করে তোলে। File.open, File.read, File.write, এবং File.delete সহ অন্যান্য মেথড ফাইলের উপর বিভিন্ন অপারেশন করার জন্য ব্যবহৃত হয়। Block form ব্যবহার করে ফাইল হ্যান্ডলিং আরও নিরাপদ এবং কার্যকরী হয়, কারণ ফাইলটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।

Content added By

File I/O (Input/Output) হল কম্পিউটার প্রোগ্রামিংয়ের একটি গুরুত্বপূর্ণ অংশ, যা ফাইলের সাথে ডেটা পড়া (Input) এবং লেখা (Output) সম্পর্কিত কার্যক্রম পরিচালনা করে। রুবি ভাষা ফাইল ম্যানিপুলেশনের জন্য বিভিন্ন ধরনের মেথড এবং ফিচার সরবরাহ করে, যার মাধ্যমে আপনি ফাইল তৈরি, পড়া, লেখা এবং মুছতে পারেন।

File I/O এর মৌলিক ধারণা

রুবিতে ফাইল I/O এর জন্য সাধারণত File ক্লাস ব্যবহার করা হয়। এই ক্লাসটি ফাইলের সাথে সম্পর্কিত বিভিন্ন কার্যক্রম করতে সহায়তা করে, যেমন:

  • ফাইল খুলা (Open)
  • ফাইলের মধ্যে লেখা (Write)
  • ফাইল থেকে পড়া (Read)
  • ফাইল বন্ধ করা (Close)

File I/O এর মৌলিক মেথডস

1. ফাইল ওপেন করা (Opening a File)

ফাইল খুলতে রুবি File.open মেথড ব্যবহার করে। আপনি যখন ফাইল খুলবেন, তখন এর একটি মোড উল্লেখ করতে হবে, যেমন পড়ার জন্য r (read), লেখার জন্য w (write), অথবা অ্যাপেন্ড করার জন্য a (append) মোড ব্যবহার করা হয়।

সিনট্যাক্স:

File.open('filename.txt', 'mode')
  • 'r': ফাইলটি পড়ার জন্য খুলবে (ফাইলটি যদি না থাকে, তাহলে একটি ত্রুটি দেখাবে)।
  • 'w': ফাইলটি লেখার জন্য খুলবে (ফাইলটি না থাকলে তৈরি করবে এবং পুরানো কন্টেন্ট মুছে ফেলবে)।
  • 'a': ফাইলটি অ্যাপেন্ড করার জন্য খুলবে (যদি ফাইল না থাকে তবে এটি তৈরি করবে)।

2. ফাইল থেকে ডেটা পড়া (Reading from a File)

ফাইল থেকে ডেটা পড়তে .read, .gets, অথবা .each_line মেথড ব্যবহার করা হয়।

  • .read: পুরো ফাইলের কন্টেন্ট একবারে পড়ে নেয়।
  • .gets: এক লাইনে পড়া হয়।
  • .each_line: ফাইলের প্রতিটি লাইনের জন্য একটি ব্লক চালায়।

উদাহরণ:

# ফাইল খুলে পড়া
file = File.open('example.txt', 'r')
content = file.read  # পুরো ফাইলের কন্টেন্ট পড়া
puts content
file.close  # ফাইল বন্ধ করা

এখানে, read মেথড দিয়ে পুরো ফাইলের কন্টেন্ট পড়া হয়েছে এবং শেষে close মেথড দিয়ে ফাইলটি বন্ধ করা হয়েছে।

3. ফাইলে লেখা (Writing to a File)

ফাইলে লেখা লেখার জন্য .write অথবা .puts মেথড ব্যবহার করা হয়। write একবারে পুরো কন্টেন্ট লেখে, আর puts একাধিক লাইন লেখার জন্য ব্যবহৃত হয়।

উদাহরণ:

# ফাইলে লেখা
file = File.open('example.txt', 'w')
file.puts "Hello, Ruby!"  # একটি লাইন লেখা
file.write("Welcome to File I/O.")  # আরেকটি লাইন লেখা
file.close  # ফাইল বন্ধ করা

এখানে, "Hello, Ruby!" এবং "Welcome to File I/O." দুটি লাইন puts এবং write মেথডের মাধ্যমে ফাইলে লেখা হয়েছে।

4. ফাইলের মধ্যে অ্যাপেন্ড করা (Appending to a File)

ফাইলের শেষের দিকে নতুন ডেটা অ্যাপেন্ড করতে a মোড ব্যবহার করা হয়।

উদাহরণ:

# ফাইলের শেষে নতুন লেখা অ্যাপেন্ড করা
file = File.open('example.txt', 'a')
file.puts "Appended content."
file.close  # ফাইল বন্ধ করা

এখানে, "Appended content." ফাইলের শেষের দিকে লেখা হয়েছে।

5. ফাইল বন্ধ করা (Closing a File)

ফাইল ব্যবহারের পরে .close মেথড ব্যবহার করে ফাইলটি বন্ধ করা হয়। ফাইল বন্ধ না করলে, পরে আরও কিছু লিখতে বা পড়তে সমস্যা হতে পারে।

file = File.open('example.txt', 'r')
# ফাইলের সাথে কাজ করার পর, ফাইল বন্ধ করা
file.close

File I/O এর সিকোয়েন্স

ফাইলের সাথে কাজ করার প্রক্রিয়া সাধারণত নিম্নলিখিত সিকোয়েন্স অনুসরণ করে:

  1. ফাইল খুলুন (File.open বা File.new).
  2. ফাইল থেকে তথ্য পড়ুন অথবা ফাইলে তথ্য লেখুন (.read, .puts, .write ইত্যাদি).
  3. ফাইল বন্ধ করুন (file.close).

File I/O এর নিরাপদ ব্যবহার (Safe File Handling)

রুবিতে File.open এর ব্লক ব্যবহার করে ফাইল ওপেন করা হয়, যা নিরাপদ এবং মেমরি ম্যানেজমেন্টে সহায়ক। ব্লকের শেষে ফাইলটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়।

উদাহরণ:

# ব্লক ব্যবহার করে ফাইলের সাথে কাজ করা
File.open('example.txt', 'r') do |file|
  content = file.read
  puts content
end
# ব্লক শেষে ফাইল স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে

এভাবে, ফাইল ব্যবহারের পর ফাইলটি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যায়, যা সিস্টেম রিসোর্স মুক্ত রাখতে সহায়ক।


File I/O এর কিছু গুরুত্বপূর্ণ মেথড

  • .read: পুরো ফাইল পড়তে ব্যবহার করা হয়।
  • .gets: একটি লাইন পড়তে ব্যবহার করা হয়।
  • .each_line: ফাইলের প্রতিটি লাইন পড়তে ব্যবহার করা হয়।
  • .write: ফাইলে লেখা লেখার জন্য ব্যবহৃত হয়।
  • .puts: ফাইলে একটি নতুন লাইন সহ লেখা হয়।
  • .close: ফাইল বন্ধ করতে ব্যবহৃত হয়।

ফাইল সম্পর্কিত ত্রুটি (Error Handling)

ফাইল I/O কাজ করার সময় কিছু ত্রুটি (error) ঘটতে পারে, যেমন:

  • ফাইল না থাকা
  • পড়তে বা লেখতে সমস্যা
  • ফাইল এক্সেস করার অনুমতি না থাকা

এই ধরনের ত্রুটির জন্য begin...rescue ব্লক ব্যবহার করা হয়।

উদাহরণ:

begin
  file = File.open('non_existent_file.txt', 'r')
rescue => e
  puts "Error: #{e.message}"
end

এখানে, যদি "non_existent_file.txt" ফাইলটি না থাকে, তাহলে এর পরিবর্তে rescue ব্লকটি কার্যকর হবে এবং একটি ত্রুটি মেসেজ দেখাবে।


সারসংক্ষেপ

  • File I/O রুবিতে ফাইলের সাথে কাজ করার জন্য ব্যবহৃত হয়, যেমন পড়া, লেখা, অ্যাপেন্ড করা, এবং ফাইল বন্ধ করা।
  • রুবি স্ট্রিং File.open মেথড ব্যবহার করে ফাইল ওপেন, read, write, puts মেথড ব্যবহার করে ডেটা পড়া ও লেখা এবং close মেথড দিয়ে ফাইল বন্ধ করা হয়।
  • নিরাপদ ফাইল ব্যবহারের জন্য File.open ব্লক ব্যবহার করা হয়, যা স্বয়ংক্রিয়ভাবে ফাইল বন্ধ করে।
  • ত্রুটি হ্যান্ডলিংয়ের জন্য begin...rescue ব্লক ব্যবহার করা হয়।
Content added By

রুবি প্রোগ্রামিং ভাষায় File I/O (Input/Output) অত্যন্ত গুরুত্বপূর্ণ। আপনি সহজেই ফাইল থেকে ডেটা পড়তে এবং ফাইলে ডেটা লিখতে পারেন। রুবি স্ট্যান্ডার্ড লাইব্রেরিতে ফাইল পরিচালনার জন্য অনেক মেথড রয়েছে, যা দিয়ে ফাইলের সাথে কাজ করা যায়।


১. File থেকে ডেটা পড়া

রুবিতে ফাইল থেকে ডেটা পড়তে বিভিন্ন পদ্ধতি রয়েছে। সাধারণত, File.read, File.readlines, বা IO মডিউল ব্যবহার করা হয়।

১.১ File.read মেথড

File.read মেথডটি ফাইলের সমস্ত কনটেন্ট একবারে পড়তে ব্যবহৃত হয়।

file_content = File.read("example.txt")
puts file_content

এখানে, "example.txt" ফাইলটির সমস্ত কনটেন্ট পড়া হবে এবং তা file_content ভেরিয়েবলে রাখা হবে। এরপর, তা আউটপুট করা হবে।

১.২ File.readlines মেথড

File.readlines মেথডটি ফাইলের সমস্ত লাইনকে একটি অ্যারেতে পড়তে ব্যবহার হয়। এই মেথডটি ফাইলের প্রতিটি লাইনকে একটি আলাদা উপাদান হিসেবে অ্যারেতে রাখে।

lines = File.readlines("example.txt")
puts lines

এখানে, "example.txt" ফাইলটির প্রতিটি লাইন একটি আলাদা উপাদান হিসেবে অ্যারেতে রাখা হবে এবং পরে তা আউটপুট হবে।

১.৩ File.open মেথড

File.open মেথডটি ফাইলটি খুলে, তার পরে ফাইলের কনটেন্ট পড়তে সাহায্য করে। আপনি open মেথডের সাথে ব্লক ব্যবহার করে কাজ করতে পারেন, যা ফাইলের ব্যবহারের পরে স্বয়ংক্রিয়ভাবে ফাইলটি বন্ধ করে দেয়।

File.open("example.txt", "r") do |file|
  file_content = file.read
  puts file_content
end

এখানে, "example.txt" ফাইলটি রিড মোডে (read mode) খোলা হয়েছে, এবং তার কনটেন্ট file.read দিয়ে পড়া হয়েছে।


২. File এ ডেটা লেখা

ফাইলে ডেটা লেখার জন্য File.write, File.puts, এবং File.open মেথড ব্যবহার করা হয়।

২.১ File.write মেথড

File.write মেথডটি ফাইলের মধ্যে নির্দিষ্ট কনটেন্ট লেখার জন্য ব্যবহার করা হয়।

File.write("example.txt", "Hello, world!")

এখানে, "example.txt" ফাইলে "Hello, world!" লেখার কাজ করবে। যদি ফাইলটি পূর্বে থেকেই থাকে, তবে এটি পুরনো কনটেন্টকে ওভাররাইট করবে।

২.২ File.puts মেথড

File.puts মেথডটি ফাইলের মধ্যে লাইন আকারে ডেটা লেখার জন্য ব্যবহার হয়।

File.open("example.txt", "w") do |file|
  file.puts("Hello, world!")
  file.puts("Welcome to Ruby file handling.")
end

এখানে, "example.txt" ফাইলে দুটি লাইন লেখা হবে। w মোড ফাইলটি লেখার জন্য খোলার নির্দেশ দেয় এবং এটি ফাইলের পুরনো কনটেন্টকে মুছে ফেলে নতুন কনটেন্ট লেখে।

২.৩ File.open মেথড দিয়ে লেখা

File.open মেথড ব্যবহার করে আপনি লেখার জন্য একটি ব্লকও ব্যবহার করতে পারেন। এটি পুরনো কনটেন্টের সাথে নতুন ডেটা যোগ করতে সহায়ক।

File.open("example.txt", "a") do |file|
  file.puts("This is an appended line.")
end

এখানে, "example.txt" ফাইলটি অ্যাপেন্ড মোডে (append mode) খোলা হয়েছে, যার ফলে পুরনো কনটেন্টের শেষে নতুন লাইন যোগ করা হয়েছে।


৩. File I/O Error Handling

ফাইলের সাথে কাজ করার সময় আপনি ফাইল না থাকলে অথবা রিড/রাইট পারমিশন না থাকলে error handling করতে পারেন।

begin
  file = File.open("example.txt", "r")
  content = file.read
  puts content
rescue Errno::ENOENT
  puts "The file does not exist!"
rescue Errno::EACCES
  puts "You do not have permission to read the file!"
ensure
  file.close if file
end

এখানে, Errno::ENOENT ত্রুটি ফাইল না থাকার ক্ষেত্রে এবং Errno::EACCES ত্রুটি ফাইল রিড/রাইট পারমিশন না থাকার ক্ষেত্রে ধরা পড়বে।


সারসংক্ষেপ

  • File.read: ফাইলের সমস্ত কনটেন্ট একবারে পড়তে ব্যবহার করা হয়।
  • File.readlines: ফাইলের প্রতিটি লাইনকে একটি অ্যারেতে পড়তে ব্যবহার করা হয়।
  • File.open: ফাইলের কনটেন্ট পড়তে বা লিখতে ব্যবহৃত হয় এবং ব্লক ব্যবহার করলে ফাইল বন্ধ হয়ে যায়।
  • File.write: ফাইলে একটি নির্দিষ্ট কনটেন্ট লেখার জন্য ব্যবহৃত হয়।
  • File.puts: ফাইলে একটি লাইন আকারে ডেটা লেখার জন্য ব্যবহৃত হয়।
  • File I/O Error Handling: ফাইলের সাথে কাজ করার সময় ত্রুটির জন্য begin-rescue-ensure ব্লক ব্যবহার করা যায়।

এই পদ্ধতিগুলির মাধ্যমে আপনি রুবিতে ফাইল পরিচালনা করতে পারবেন এবং ফাইলের কনটেন্ট পড়া বা লেখা সহজেই করতে পারবেন।

Content added By

রুবি প্রোগ্রামিং ভাষায় File Modes এবং Exception Handling দুটি গুরুত্বপূর্ণ ধারণা, যা ফাইল সিস্টেমের সাথে কাজ করার সময় এবং এর মধ্যে ত্রুটি (error) মোকাবিলা করার সময় ব্যবহৃত হয়। এখানে আমরা File Modes এবং Exception Handling এর ধারণা, ব্যবহার এবং তাদের গুরুত্ব আলোচনা করব।


১. File Modes (ফাইল মোডস)

রুবি ভাষায় ফাইলের সাথে কাজ করার জন্য File modes ব্যবহার করা হয়, যা নির্ধারণ করে যে ফাইলটি read, write, বা append মোডে খোলা হবে এবং কিভাবে তার মধ্যে ডেটা লেখা বা পড়া হবে।

ফাইল মোডের ধরন:

  • r: ফাইলটি read-only মোডে খোলা হবে। যদি ফাইলটি না থাকে, তাহলে ত্রুটি দেখাবে।
  • w: ফাইলটি write মোডে খোলা হবে। যদি ফাইলটি আগে থেকে থাকে, তাহলে তার পুরনো ডেটা মুছে নতুন ডেটা লেখা হবে। যদি ফাইলটি না থাকে, তাহলে নতুন ফাইল তৈরি হবে।
  • a: ফাইলটি append মোডে খোলা হবে। অর্থাৎ, পুরনো ডেটা মুছে ফেলা হবে না, নতুন ডেটা ফাইলের শেষে যোগ হবে। যদি ফাইলটি না থাকে, তাহলে নতুন ফাইল তৈরি হবে।
  • r+: ফাইলটি read-write মোডে খোলা হবে। অর্থাৎ, ফাইলটি পড়া এবং লেখা উভয়ের জন্য খোলা থাকবে। যদি ফাইলটি না থাকে, তাহলে ত্রুটি দেখাবে।
  • w+: ফাইলটি write-read মোডে খোলা হবে। যদি ফাইলটি আগে থাকে, তাহলে তার পুরনো ডেটা মুছে নতুন ডেটা লেখা হবে, এবং ফাইলটি পড়া যাবে। যদি ফাইলটি না থাকে, তাহলে নতুন ফাইল তৈরি হবে।
  • a+: ফাইলটি append-read মোডে খোলা হবে। পুরনো ডেটা মুছে ফেলা হবে না, নতুন ডেটা যোগ হবে, এবং ফাইলটি পড়া যাবে।

ফাইল খোলা:

ফাইল খোলার জন্য রুবিতে File.open মেথড ব্যবহৃত হয়, এবং এতে ফাইল মোড প্যারামিটার হিসেবে দেওয়া হয়।

উদাহরণ:

# রিড মোডে ফাইল খোলা
file = File.open("example.txt", "r")
puts file.read
file.close

# রাইট মোডে ফাইল খোলা
file = File.open("example.txt", "w")
file.write("Hello, Ruby!")
file.close

# অ্যাপেন্ড মোডে ফাইল খোলা
file = File.open("example.txt", "a")
file.puts("Appending some text.")
file.close

এখানে, প্রথমে ফাইলটি read মোডে খোলা হয়েছে এবং তার কনটেন্ট পড়া হয়েছে, পরে write মোডে ফাইল খোলা হয়েছে এবং তার মধ্যে কিছু লেখা হয়েছে, এবং শেষে append মোডে ফাইল খোলা হয়েছে এবং তার শেষে নতুন কিছু লেখা হয়েছে।


২. Exception Handling (এক্সসেপশন হ্যান্ডলিং)

Exception Handling হচ্ছে একটি প্রোগ্রামিং কৌশল যার মাধ্যমে আপনি কোডে যে কোনো ধরনের ত্রুটি (error) বা ব্যতিক্রম (exception) ঘটে গেলে সেটি সঠিকভাবে পরিচালনা করতে পারেন। রুবিতে Exception Handling এর জন্য begin...rescue...end ব্লক ব্যবহৃত হয়। এটি কোডের ত্রুটি ম্যানেজমেন্ট এবং ত্রুটির কারণে প্রোগ্রাম ক্র্যাশ হওয়া আটকাতে সহায়তা করে।

Syntax:

begin
  # কোড যা ত্রুটি ঘটাতে পারে
rescue ExceptionType => e
  # ত্রুটি ধরা হলে কোড
else
  # যদি কোন ত্রুটি না ঘটে
ensure
  # সবশেষে যাই হোক না কেন, এই কোডটি চালানো হবে
end

১. begin...rescue: সাধারণ ত্রুটি ধরার জন্য ব্যবহৃত হয়।

২. else: যদি কোনো ত্রুটি না ঘটে, তাহলে এই অংশটি কার্যকর হয়।

৩. ensure: এই অংশটি ত্রুটি ঘটুক বা না ঘটুক, সর্বদা কার্যকর হয়।

উদাহরণ:

begin
  puts "Enter a number:"
  num = Integer(gets.chomp)
  puts "The number is #{num}"
rescue ArgumentError => e
  puts "Error: Please enter a valid number."
else
  puts "No error occurred!"
ensure
  puts "This is always executed."
end

আউটপুট:

Enter a number:
abc
Error: Please enter a valid number.
This is always executed.

এখানে:

  • begin ব্লকটি সেই কোড ধারণ করে যেখানে ত্রুটি ঘটতে পারে।
  • rescue ব্লকটি ত্রুটি (এখানে ArgumentError) ধরা হলে চালিত হয়।
  • else ব্লকটি কোন ত্রুটি না ঘটলে কার্যকর হয়।
  • ensure ব্লকটি কোডের শেষে অবশ্যই চালিত হয়, ত্রুটি ঘটুক বা না ঘটুক।

৩. Specific Exception Types

রুবিতে আপনি specific exception types ধরতে পারেন, যেমন ZeroDivisionError, IOError, ArgumentError, ইত্যাদি।

উদাহরণ:

begin
  # ZeroDivisionError এড়ানোর জন্য কোড
  result = 10 / 0
rescue ZeroDivisionError => e
  puts "Error: Division by zero is not allowed."
end

এখানে, ZeroDivisionError ক্যাচ করা হয়েছে এবং ব্যবহারকারীকে একটি সঠিক ত্রুটি বার্তা দেখানো হয়েছে।


৪. Raising Exceptions

রুবি ভাষায় আপনি নিজে থেকে ত্রুটি বা ব্যতিক্রম (exception) উত্থাপন (raise) করতে পারেন। এটি বিশেষভাবে তখন ব্যবহৃত হয় যখন আপনি কিছু নির্দিষ্ট শর্ত পূর্ণ না হলে ত্রুটি চান।

উদাহরণ:

def check_age(age)
  raise "Age must be greater than 18" if age < 18
  puts "Age is valid"
end

begin
  check_age(16)
rescue => e
  puts "Error: #{e}"
end

এখানে, raise কমান্ডটি নির্দিষ্ট শর্তে ত্রুটি উত্থাপন করেছে।


সারসংক্ষেপ

  • File Modes: রুবিতে ফাইল মোডের মাধ্যমে আপনি ফাইলের সাথে কাজ করতে পারেন (যেমন r, w, a, r+, ইত্যাদি) এবং কিভাবে ফাইল পড়া, লেখা বা অ্যাপেন্ড করা হবে তা নির্ধারণ করা হয়।
  • Exception Handling: রুবিতে begin...rescue...end ব্লক ব্যবহার করে ত্রুটির সঠিক ব্যবস্থা নেওয়া হয়, যাতে প্রোগ্রামটি চলাকালীন ত্রুটি ঘটলে সেটি ঠিকভাবে হ্যান্ডল করা যায়।
  • raise: আপনি নিজে থেকে ত্রুটি তৈরি করতে পারেন এবং rescue ব্লকে তা ধরতে পারেন।

এগুলি রুবি প্রোগ্রামিং ভাষায় ফাইল সিস্টেমের সাথে কাজ করার সময় এবং ত্রুটি মোকাবিলা করার সময় কার্যকরী ভূমিকা পালন করে।

Content added By

রুবি প্রোগ্রামিং ভাষায় File এবং Directory ম্যানিপুলেশন খুবই গুরুত্বপূর্ণ একটি বিষয়, বিশেষত যখন আপনি ফাইল সিস্টেমে কাজ করছেন। রুবি ফাইল এবং ডিরেক্টরি তৈরি, পড়া, লেখা, পরিবর্তন, মুছে ফেলা এবং অন্যান্য কার্যক্রম সম্পাদন করতে সহায়তা করে। রুবি ব্যবহার করে আপনি সিস্টেম ফাইল পরিচালনা করতে পারেন খুব সহজে।

রুবির File এবং Dir ক্লাস এই ধরনের কার্যক্রম পরিচালনার জন্য ব্যবহৃত হয়।


১. File ম্যানিপুলেশন

File ক্লাস রুবিতে ফাইলের সাথে কাজ করার জন্য ব্যবহৃত হয়। এখানে কিছু গুরুত্বপূর্ণ ফাইল ম্যানিপুলেশন অপারেশন দেয়া হলো।

১.১ ফাইল তৈরি করা এবং লেখা

রুবিতে নতুন ফাইল তৈরি করতে এবং তাতে লেখা দেওয়ার জন্য File.open মেথড ব্যবহার করা হয়। এই মেথডে দুটি পারামিটার থাকে — প্রথমটি ফাইলের নাম এবং দ্বিতীয়টি মোড (যেমন, লেখা, পড়া ইত্যাদি)।

# Writing to a file
file = File.open("example.txt", "w")  # "w" mode is for writing
file.puts("Hello, Ruby!")
file.puts("This is a new file.")
file.close

এখানে, "example.txt" নামের একটি নতুন ফাইল তৈরি হবে এবং তাতে কিছু টেক্সট লেখা হবে।

১.২ ফাইল পড়া

ফাইল থেকে তথ্য পড়তে File.read বা File.open ব্যবহার করা যায়।

# Reading from a file
content = File.read("example.txt")
puts content

এটি "example.txt" ফাইলের সমস্ত কনটেন্ট পড়ে আউটপুট করবে।

১.৩ ফাইলের মেটাডেটা সংগ্রহ

ফাইলের মেটাডেটা যেমন আকার, প্রক্রিয়া সময়, তৈরি সময় ইত্যাদি পেতে File ক্লাসের বিভিন্ন মেথড ব্যবহার করা যায়।

# Getting file information
file_info = File.stat("example.txt")
puts file_info.size  # Output the size of the file

১.৪ ফাইল মুছে ফেলা

ফাইল মুছে ফেলতে File.delete মেথড ব্যবহার করা হয়।

# Deleting a file
File.delete("example.txt")

এটি "example.txt" ফাইলটি মুছে ফেলবে।

১.৫ ফাইল চেক করা

ফাইলটি অস্তিত্ব আছে কিনা চেক করতে File.exist? মেথড ব্যবহার করা হয়।

# Checking if a file exists
if File.exist?("example.txt")
  puts "File exists!"
else
  puts "File not found."
end

২. Directory ম্যানিপুলেশন

রুবির Dir ক্লাস ফাইল সিস্টেমের ডিরেক্টরি ম্যানিপুলেশন কাজের জন্য ব্যবহৃত হয়। এটি ডিরেক্টরি তৈরি, মুছে ফেলা, ফাইল লিস্ট করা, এবং অন্যান্য কার্যক্রম করতে সহায়তা করে।

২.১ ডিরেক্টরি তৈরি করা

Dir.mkdir মেথড দিয়ে নতুন ডিরেক্টরি তৈরি করা যায়।

# Creating a directory
Dir.mkdir("new_directory")

এটি "new_directory" নামে একটি নতুন ডিরেক্টরি তৈরি করবে।

২.২ ডিরেক্টরি বাদ দেওয়া

Dir.rmdir মেথড দিয়ে খালি ডিরেক্টরি মুছে ফেলা হয়।

# Deleting a directory
Dir.rmdir("new_directory")

এটি "new_directory" ডিরেক্টরি মুছে ফেলবে, তবে এটি যদি খালি না হয়, তবে ত্রুটি প্রদর্শিত হবে।

২.৩ ডিরেক্টরির মধ্যে ফাইলের তালিকা পাওয়া

Dir.entries মেথড ব্যবহার করে ডিরেক্টরির মধ্যে থাকা সমস্ত ফাইলের তালিকা পাওয়া যায়।

# Listing all files in a directory
files = Dir.entries(".")
puts files

এটি বর্তমান ডিরেক্টরির মধ্যে থাকা সমস্ত ফাইল এবং ফোল্ডারের তালিকা প্রদর্শন করবে (যতগুলো "." ডিরেক্টরির মধ্যে রয়েছে)।

২.৪ ডিরেক্টরি পরিবর্তন করা

Dir.chdir মেথড ব্যবহার করে বর্তমান কার্যকারী ডিরেক্টরি পরিবর্তন করা যায়।

# Changing the current directory
Dir.chdir("/path/to/directory")
puts "Current directory: #{Dir.pwd}"

এটি বর্তমান কার্যকারী ডিরেক্টরি পরিবর্তন করবে এবং Dir.pwd দিয়ে নতুন কার্যকারী ডিরেক্টরিটি দেখাবে।

২.৫ ডিরেক্টরির মধ্যে ফাইল প্যাটার্ন মেলানো

Dir.glob মেথড ব্যবহার করে ডিরেক্টরি বা সাব-ডিরেক্টরির মধ্যে নির্দিষ্ট প্যাটার্ন অনুসারে ফাইল খুঁজে বের করা যায়।

# Finding all .txt files in the directory
txt_files = Dir.glob("*.txt")
puts txt_files

এটি বর্তমান ডিরেক্টরিতে থাকা সব .txt এক্সটেনশনযুক্ত ফাইলগুলির তালিকা দেখাবে।


৩. File ও Directory এর মধ্যে পার্থক্য

বৈশিষ্ট্যFileDirectory
ব্যবহারএকক ফাইলের সাথে কাজ করার জন্যডিরেক্টরি এবং তার মধ্যে থাকা ফাইলের সাথে কাজ করার জন্য
প্রক্রিয়াফাইল তৈরি, পড়া, লেখা, মুছে ফেলাডিরেক্টরি তৈরি, মুছে ফেলা, ফাইল লিস্ট করা
মেথডFile.read, File.write, File.deleteDir.mkdir, Dir.rmdir, Dir.entries

সারসংক্ষেপ

  • File ক্লাস ফাইলের সাথে সম্পর্কিত বিভিন্ন কার্যক্রম পরিচালনা করতে ব্যবহৃত হয়, যেমন ফাইল তৈরি, পড়া, লেখা, এবং মুছে ফেলা।
  • Dir ক্লাস ডিরেক্টরি সম্পর্কিত কার্যক্রমের জন্য ব্যবহৃত হয়, যেমন নতুন ডিরেক্টরি তৈরি, ডিরেক্টরি মুছে ফেলা এবং ডিরেক্টরি মধ্যে থাকা ফাইলগুলির তালিকা করা।
  • রুবিতে File এবং Dir ক্লাসের মাধ্যমে ফাইল এবং ডিরেক্টরি ম্যানিপুলেশন খুবই সহজ এবং কার্যকরী।

এই ফিচারগুলো রুবি প্রোগ্রামিং ভাষায় ফাইল সিস্টেম পরিচালনা এবং অটোমেশন স্ক্রিপ্ট তৈরি করতে সহায়ক।

Content added By
Promotion

Are you sure to start over?

Loading...