Java I/O (Input/Output) প্যাকেজটি Java অ্যাপ্লিকেশনগুলিকে ফাইল এবং অন্যান্য ডেটা সোর্সের সাথে যোগাযোগ করতে সহায়তা করে। ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখা Java-র একটি সাধারণ কাজ এবং এটি বিভিন্ন Stream (যেমন, Byte Streams এবং Character Streams) ব্যবহার করে করা হয়। এই কাজগুলির জন্য java.io প্যাকেজের FileInputStream, FileOutputStream, FileReader, FileWriter ইত্যাদি ক্লাসগুলি ব্যবহৃত হয়।
নিচে ফাইল থেকে ডেটা পড়া এবং ফাইলে ডেটা লেখার জন্য বিভিন্ন কৌশল এবং উদাহরণ দেখানো হয়েছে।
1. ফাইল থেকে ডেটা পড়া (FileInputStream)
FileInputStream একটি byte stream যা ফাইল থেকে বাইনারি ডেটা পড়ার জন্য ব্যবহৃত হয়।
ফাইল থেকে বাইনারি ডেটা পড়ার উদাহরণ (FileInputStream)
import java.io.FileInputStream;
import java.io.IOException;
public class FileReadingExample {
public static void main(String[] args) {
try (FileInputStream fis = new FileInputStream("input.txt")) {
int byteData;
while ((byteData = fis.read()) != -1) { // ফাইল থেকে একটি বাইট পড়া
System.out.print((char) byteData); // বাইটকে ক্যারেক্টারে কনভার্ট করে প্রিন্ট করা
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
- এখানে
FileInputStreamব্যবহার করে input.txt ফাইল থেকে বাইনারি ডেটা পড়া হয়েছে। fis.read()প্রতিটি বাইট পড়ে এবং তা character হিসেবে আউটপুটে প্রিন্ট করা হয়েছে।
2. ফাইলে ডেটা লেখা (FileOutputStream)
FileOutputStream একটি byte stream যা বাইনারি ডেটা ফাইলে লেখার জন্য ব্যবহৃত হয়।
ফাইলে বাইনারি ডেটা লেখার উদাহরণ (FileOutputStream)
import java.io.FileOutputStream;
import java.io.IOException;
public class FileWritingExample {
public static void main(String[] args) {
String data = "Hello, this is a test!"; // লেখার জন্য ডেটা
try (FileOutputStream fos = new FileOutputStream("output.txt")) {
fos.write(data.getBytes()); // স্ট্রিংকে বাইট অ্যারে হিসেবে রূপান্তর করে ফাইলে লেখা
System.out.println("Data written to the file successfully.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
- এখানে
FileOutputStreamব্যবহার করে output.txt ফাইলে বাইনারি ডেটা লেখা হয়েছে। data.getBytes()স্ট্রিংটি বাইট অ্যারেতে রূপান্তরিত করে ফাইলে লেখা হয়েছে।
3. ফাইল থেকে টেক্সট ডেটা পড়া (FileReader)
FileReader একটি character stream যা টেক্সট ডেটা পড়তে ব্যবহৃত হয়। এটি শুধুমাত্র টেক্সট ফাইলের জন্য উপযুক্ত।
ফাইল থেকে টেক্সট ডেটা পড়ার উদাহরণ (FileReader)
import java.io.FileReader;
import java.io.IOException;
public class FileReaderExample {
public static void main(String[] args) {
try (FileReader fr = new FileReader("input.txt")) {
int charData;
while ((charData = fr.read()) != -1) { // ফাইল থেকে একটি ক্যারেক্টার পড়া
System.out.print((char) charData); // ক্যারেক্টার প্রিন্ট করা
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
FileReaderব্যবহার করে input.txt ফাইল থেকে টেক্সট ডেটা পড়া হচ্ছে।fr.read()প্রতিটি ক্যারেক্টার পড়ে এবং তা কনসোলে প্রিন্ট করা হচ্ছে।
4. ফাইলে টেক্সট ডেটা লেখা (FileWriter)
FileWriter একটি character stream যা টেক্সট ডেটা ফাইলে লেখার জন্য ব্যবহৃত হয়।
ফাইলে টেক্সট ডেটা লেখার উদাহরণ (FileWriter)
import java.io.FileWriter;
import java.io.IOException;
public class FileWriterExample {
public static void main(String[] args) {
String data = "Hello, this is a text file!"; // লেখার জন্য ডেটা
try (FileWriter fw = new FileWriter("output.txt")) {
fw.write(data); // স্ট্রিং ডেটা ফাইলে লেখা
System.out.println("Data written to file successfully.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
FileWriterব্যবহার করে output.txt ফাইলে টেক্সট ডেটা লেখা হচ্ছে।- স্ট্রিং ডেটা সরাসরি ফাইলে লেখা হয়েছে।
5. Buffered Streams ব্যবহার করে ফাইল পড়া এবং লেখা
Buffered Streams ডেটা দ্রুত পড়া এবং লেখার জন্য ব্যবহৃত হয়, কারণ এটি মেমোরিতে একটি বড় বাফার তৈরি করে ডেটা পড়ে বা লেখে। এটি I/O অপারেশনে গতি বৃদ্ধি করতে সহায়ক।
BufferedReader এবং BufferedWriter উদাহরণ
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedStreamExample {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader("input.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {
String line;
while ((line = br.readLine()) != null) { // ফাইল থেকে একটি লাইন পড়া
bw.write(line); // ফাইলে একটি লাইন লেখা
bw.newLine(); // নতুন লাইন যোগ করা
}
System.out.println("Data copied from input.txt to output.txt using Buffered Streams.");
} catch (IOException e) {
e.printStackTrace();
}
}
}
ব্যাখ্যা:
- BufferedReader ব্যবহার করে input.txt ফাইল থেকে দ্রুত ডেটা পড়া হচ্ছে এবং BufferedWriter ব্যবহার করে output.txt ফাইলে লেখার জন্য ডেটা প্রক্রিয়া করা হচ্ছে।
- FileInputStream এবং FileOutputStream ব্যবহৃত হয় byte data পড়া এবং লেখার জন্য, যা মূলত বাইনারি ফাইলের জন্য উপযুক্ত।
- FileReader এবং FileWriter ব্যবহৃত হয় character data পড়া এবং লেখার জন্য, যা text files (যেমন .txt, .csv, .xml) এর জন্য উপযুক্ত।
- BufferedReader এবং BufferedWriter অধিক কার্যকরী যখন আপনার ফাইলের মধ্যে দ্রুত পড়া এবং লেখার প্রয়োজন হয়।
Java I/O-এর এই ক্লাসগুলো ফাইল সিস্টেমের সঙ্গে কাজ করার জন্য কার্যকর এবং শক্তিশালী হাতিয়ার, যা ডেটার দ্রুত প্রসেসিং নিশ্চিত করে।
Read more