عندما تكون تعامل مع قراءة البيانات من ملف وتخزينها في ملف آخر، يجب أن تتبع خطوات محددة لضمان نجاح العملية ودقتها. في البرنامج الذي قدمته، تحاول قراءة نص من ملف واستخدام قائمة لتخزين الأسطر. بعد ذلك، تختار عشوائيًا 20 اسمًا وتقوم بطباعتهم على الشاشة. ومن الواضح أنك ترغب في تخزين هذه الأسماء في ملف آخر بدلاً من عرضها على الشاشة.
للقيام بذلك، يمكنك استخدام فئة FileWriter
بالفعل، ولكن يجب عليك كتابة هذه الأسماء في الملف الجديد بدلاً من طباعتها على الشاشة. يمكن أن يكون الكود معدلًا كما يلي:
javaimport java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Assignment2 {
public static void main(String[] args) throws IOException {
// Read in the file into a list of strings
BufferedReader reader = new BufferedReader(new FileReader("textfile.txt"));
List lines = new ArrayList();
String line = reader.readLine();
while (line != null) {
lines.add(line);
line = reader.readLine();
}
// Choose a random one from the list
Random r = new Random();
FileWriter letters = new FileWriter("out.txt");
for (int i = 0; i < 20; i++) {
int rowNum = r.nextInt(lines.size());
String randomName = lines.get(rowNum);
letters.write(randomName + "\n"); // Write the name to the file
}
// Close the FileWriter to ensure all data is written
letters.close();
// Close the BufferedReader
reader.close();
}
}
في هذا الشكل، قمت بتعديل الكود لاستخدام FileWriter
لكتابة الأسماء في ملف جديد (out.txt
) بدلاً من طباعتها على الشاشة. يتم استخدام write()
لكتابة الأسماء في الملف، وأضفت \n
لإدراج سطر جديد بين كل اسم. يتم أيضًا إغلاق FileWriter
بعد الانتهاء من الكتابة لضمان أن كل البيانات تمت كتابتها بنجاح.
هذا يجعل البرنامج قادرًا على قراءة الأسماء من ملف وحفظ 20 اسمًا عشوائيًا في ملف جديد.
المزيد من المعلومات
تتناول الكود البرمجي الذي تم تقديمه عملية قراءة ملف نصي (textfile.txt
) وتخزين محتواه في قائمة (List
). بعد ذلك، يتم استخدام فئة Random
لتحديد عشوائي لعدد 20، ويتم اختيار 20 اسمًا عشوائيًا من القائمة.
ما يميز هذا الكود هو قدرته على التعامل مع ملفات النص والعمليات العشوائية. يستفيد البرنامج من استخدام الحلقات لقراءة البيانات من الملف وتخزينها في هيكل بيانات مناسب. بعد ذلك، يتم اختيار الأسماء العشوائية بواسطة فئة Random
، مما يوفر تجربة متغيرة في كل تشغيل.
من الناحية البرمجية، يظهر الكود استخدام مفاهيم الاستثناء (throws IOException
)، مما يشير إلى تعامل البرنامج مع استثناءات الإدخال/الإخراج المحتملة. كما يشير الكود إلى استخدام فئات Java الأساسية للتعامل مع الملفات والنصوص.
هذا البرنامج هو مثال على كيفية تنسيق العمليات المتعلقة بالملفات والعمليات الرياضية في برنامج Java، مما يسهم في تطوير مهارات البرمجة والتعامل مع تحديات قراءة وكتابة الملفات.