إحدى المهام الأكثر شيوعًا في تطوير البرمجيات هي القدرة على قراءة الملفات وكتابتها. في Java، تعد الكتابة إلى ملف عملية مباشرة يمكن إجراؤها باستخدام الفئات والأساليب المضمنة. في هذه المقالة، سوف نستكشف كيفية الكتابة إلى ملف باستخدام Java ونناقش مختلف الفئات والأساليب المعنية. توفر Java فئات مضمنة مثل FileWriter و PrintWriter للكتابة في ملف بلغة Java.
جافا الكتابة إلى ملف مثال
في البداية، دعونا نلقي نظرة على مثال بسيط للكتابة إلى ملف في Java. فيما يلي مثال لكيفية كتابة سلسلة إلى ملف في Java باستخدام فئة FileWriter :فئة كاتب الملفات
تعد فئة FileWriter طريقة أخرى للكتابة إلى ملف في Java. إنها فئة دفق أحرف تسمح لك بكتابة بيانات الأحرف إلى ملف. فيما يلي مثال يوضح كيفية استخدام فئة FileWriter لكتابة سلسلة إلى ملف:import java.io.FileWriter;
import java.io.IOException;
// Main method for the string to file in java starts from here,
public class WriteToFileExample {
public static void main(String[] args) {
// create a string to write text to file
String data = "Hello, world!";
try {
// create a FileWriter object with the file name
FileWriter writer = new FileWriter("output.txt");
// write the string to the file
writer.write(data);
// close the writer
writer.close();
System.out.println("Successfully wrote text to file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
في هذا المثال، نقوم أولاً بإنشاء كائن سلسلة يسمى data يحتوي على النص الذي نريد كتابته إلى ملف. نقوم بعد ذلك بإنشاء كائن FileWriter باسم الملف الذي نريد الكتابة إليه، في هذه الحالة، اسمه put.txt . بعد ذلك، نستخدم طريقة write() لكائن FileWriter لكتابة سلسلة البيانات إلى الملف. تأخذ هذه الطريقة وسيطة سلسلة تحتوي على البيانات المراد كتابتها. أخيرًا، نغلق كائن FileWriter لتحرير موارد الملف وطباعة رسالة نجاح إلى وحدة التحكم في حالة نجاح عملية الكتابة أو رسالة خطأ في حالة اكتشاف استثناء. تعد فئة FileWriter طريقة بسيطة لكتابة بيانات الأحرف إلى ملف في Java .
فئة FileOutputStream
يتم استخدام فئة FileOutputStream لكتابة البيانات إلى ملف كدفق من البايتات. هنا مثال:import java.io.FileOutputStream;
import java.io.IOException;
public class WriteToFileExample {
public static void main(String[] args) {
String textToWrite = "Hello World!";
try {
FileOutputStream stream = new FileOutputStream("output.txt");
byte[] bytesToWrite = textToWrite.getBytes();
stream.write(bytesToWrite);
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
في هذا المثال، قمنا بإنشاء كائن FileOutputStream باسم الدفق باسم الملف "output.txt" للكتابة إليه. نقوم بعد ذلك بتحويل سلسلة textToWrite إلى مصفوفة بايت باستخدام طريقة getBytes() وكتابة مصفوفة البايت إلى كائن الدفق باستخدام طريقة write() . وأخيرًا، نغلق كائن الدفق .
فئة الكاتب المخزن
يتم استخدام فئة BufferedWriter لكتابة نص إلى ملف مزود بإمكانيات التخزين المؤقت . هنا مثال:import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteToFileExample {
public static void main(String[] args) {
String textToWrite = "Hello World!";
try {
BufferedWriter writer = new BufferedWriter(new FileWriter("output.txt"));
writer.write(textToWrite);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
في هذا المثال، قمنا بإنشاء كائن BufferedWriter يسمى الكاتب مع كائن FileWriter الذي يكتب إلى الملف "output.txt". نستخدم بعد ذلك طريقة write() لكائن الكاتب لكتابة textToWrite إلى الملف. وأخيرًا، نغلق كائن الكاتب .
طريقة كتابة السلسلة ().
تعد طريقة writeString () طريقة ملائمة تم تقديمها في Java 11 لكتابة سلسلة إلى ملف باستخدام فئة الملفات . يسمح لك بكتابة سلسلة إلى ملف في سطر واحد من التعليمات البرمجية. هنا مثال:import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class WriteToFileExample {
public static void main(String[] args) {
// create a string to write to a file
String data = "Hello, world!";
// create a file object
Path file = Paths.get("output.txt");
try {
// write the string to the file using writeString() method
Files.writeString(file, data);
System.out.println("Successfully wrote text to file.");
} catch (IOException e) {
System.out.println("An error occurred.");
e.printStackTrace();
}
}
}
في هذا المثال، نقوم أولاً بإنشاء كائن سلسلة يسمى data يحتوي على النص الذي نريد كتابته إلى ملف. نقوم بعد ذلك بإنشاء كائن مسار باسم file يمثل الملف الذي نريد الكتابة إليه، في هذه الحالة، يسمى "output.txt". بعد ذلك، نستخدم الأسلوب Files.writeString() لكتابة سلسلة البيانات إلى الملف الذي يمثله كائن الملف . تأخذ هذه الطريقة وسيطتين: كائن المسار الذي يمثل الملف المراد الكتابة إليه، وكائن السلسلة الذي يحتوي على البيانات المراد كتابتها. وأخيرًا، نطبع رسالة نجاح إلى وحدة التحكم في حالة نجاح عملية الكتابة أو رسالة خطأ في حالة اكتشاف استثناء. تعد طريقة writeString () طريقة ملائمة لكتابة سلسلة إلى ملف باستخدام Java 11 أو إصدار أحدث.
فئة الطباعة والكاتب
تقوم فئة PrintWriter تلقائيًا بمسح المخزن المؤقت للإخراج بعد كتابة كل سطر، مما يضمن كتابة البيانات على الفور إلى الملف. وهذا يجعله اختيارًا مناسبًا لكتابة كميات كبيرة من البيانات النصية إلى ملف. هنا مثال:import java.io.PrintWriter;
import java.io.FileWriter;
import java.io.IOException;
public class WriteToFileExample {
public static void main(String[] args) {
String textToWrite = "Hello World!";
try {
PrintWriter writer = new PrintWriter(new FileWriter("output.txt"));
writer.println(textToWrite);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
في هذا المثال، قمنا بإنشاء كائن PrintWriter يسمى الكاتب مع كائن FileWrite الذي يكتب إلى الملف "output.txt". نستخدم بعد ذلك طريقة println() لكائن الكاتب لكتابة textToWrite إلى الملف. وأخيرًا، نغلق كائن الكاتب .
فئة DataOutputStream
يتم استخدام فئة DataOutputStream لكتابة أنواع بيانات Java البدائية إلى ملف كدفق من البايتات . هنا مثال:import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class WriteToFileExample {
public static void main(String[] args) {
String textToWrite = "Hello World!";
int numberToWrite = 42;
try {
DataOutputStream stream = new DataOutputStream(new FileOutputStream("output.txt"));
stream.writeUTF(textToWrite);
stream.writeInt(numberToWrite);
stream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
في هذا المثال، قمنا بإنشاء كائن DataOutputStream باسم تيار ، والذي يكتب في الملف "output.txt". نستخدم بعد ذلك طريقة writeUTF() لكائن الدفق لكتابة سلسلة textToWrite وطريقة writeInt() لكتابة العدد الصحيح numberToWrite إلى الملف. وأخيرًا، نغلق كائن الدفق .
فئة قناة الملف
توفر فئة FileChannel طريقة لكتابة البيانات إلى ملف باستخدام الإدخال/الإخراج المعين للذاكرة . هنا مثال:import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class WriteToFileExample {
public static void main(String[] args) {
String textToWrite = "Hello World!";
try {
File file = new File("output.txt");
RandomAccessFile randomAccessFile = new RandomAccessFile(file, "rw");
FileChannel channel = randomAccessFile.getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024);
buffer.put(textToWrite.getBytes());
buffer.flip();
channel.write(buffer);
randomAccessFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
في هذا المثال، نقوم أولاً بإنشاء كائن ملف باسم ملف باسم الملف "output.txt" كمعلمة. نقوم بعد ذلك بإنشاء كائن RandomAccessFile باسم RandomAccessFile مع كائن الملف والوضع "rw" كمعلمات. نقوم بعد ذلك بإنشاء كائن FileChannel باسم Channel ، والذي تتم تهيئته باستخدام كائن RandomAccessFile . نقوم بعد ذلك بإنشاء كائن ByteBuffer باسم buffer بسعة 1024 بايت ونضع سلسلة textToWrite كمعلمة. نقوم بعد ذلك بقلب كائن المخزن المؤقت لإعداده للكتابة وكتابته إلى كائن القناة باستخدام طريقة الكتابة () . وأخيرا، نقوم بإغلاق كائن RandomAccessFile .
GO TO FULL VERSION