السلام عليكم
اود السؤال عن كيفية عمل ملف (dat.) عن طريق الجافا وعن طريقة حفظ و اخذ معلومات منه
حيث ان لدي اربع متغيرات اود حفضها وقرائتها والتعديل عليها من غير استخدام الاكسس
السلام عليكم
اود السؤال عن كيفية عمل ملف (dat.) عن طريق الجافا وعن طريقة حفظ و اخذ معلومات منه
حيث ان لدي اربع متغيرات اود حفضها وقرائتها والتعديل عليها من غير استخدام الاكسس
بغض النظر عن امتداد الملف
انت تريد حفظ اربع متغيرات داخل ملف
استخدم RandomAccessFile
منقطع من حين لاخر
شكرا اخي ابو الفؤاد على ردك
بس ممكن اغلبك معي وتشرحلي هاي الطريقة؟
http://java.sun.com/docs/books/tutorial/es...l/io/index.html
إقرا ( من ) الفصل ده، و انت تبقى حووووووووووووت،
أو ع الأقل ضع محاولاتك و إحنا نساعدك
يعني انت ف الأول هتعمل
FileReader fr = new FileReader ) "myfile.dat" )
بصراحه موش متذكر قوي ، موش عاوز أقولك حاجه غلط
السلام عليكم
اشكركم على ردودكم
لقد قمت بانشاء ملف RandomAccessFile واسميته data ووضعت فيه بعض القيم ولكن كيف استطيع قرائة هذه القيم والتعديل عليها
وهذا هو الكود
import java.io.RandomAccessFile;
import java.io.IOException;
public class RandomFile {
public static void main(String[] args) throws IOException {
RandomAccessFile file = new RandomAccessFile("data.dat", "rwd");
file.writeBytes("UserName\n");
file.writeBytes("Pasowrd\n");
file.writeBytes("896547221\n");
file.writeBytes("123654789\n");
}
}محاوله جيدة اخي المستقيل
هناك طرق عديدة للتعامل مع ال file
لم اجرب طريقتك في التخزين والقرائة،، لكن لدي مثال ارجو ان يكون سهل وواضح
لنفرض ان لدينا برنامج بالواجهة الموجودة بالمرفقات
عمل البرنامج هو:
اخذ المتغيرات من الاربعة jTextFiled وتخزينها في فايل وأيضا عرضها في ال jTable
ايضا تلقائيا عند تشغيل البرنامج أن يعرض محتويات الفايل ان كان موجود داخل ال jTable
المكونات :
لدينا arabTeam2000 calss هذا الكلاس فيه set & get للأريع متغيرات التي سنستخدمها في لتخزن في الفايل
ال main class وهو عبارة عن ال jFrame الموجودة في المرفقات.
الان الى عمل البرنامج:
عند تشغيل ال jFrame.java
سينفذ البرنامج التالي :
try{
File f =new File("c:/data.dat");
if(f.exists()){
FileInputStream fin= new FileInputStream(f);
ObjectInputStream oin= new ObjectInputStream(fin);
arabTeam2000 a;
while((a=(arabTeam2000)oin.readObject())!= null)
{
values.insertElementAt(a,0);
}
oin.close();
}
} catch(Exception e){
if(e instanceof EOFException)
{
listToTable();
}
else
JOptionPane.showMessageDialog(null,e);
}يفحص اذا كان موجود الفايل فينشئ ObjectInputStream للقرائة من ال file ومن ثم نعمل casting لكل object موجود في الفايل الى arabTeam2000
بعد ما نعمل casting نخزن كل ال objects داخل vector
values.insertElementAt(a,0);
لما يخلص تخزين ال objects راح يعرضها على ال jTable عن طريق تنفيذ ال method
listToTable();
هذا كله رايح يصير عند تشغيل البرنامج
طيب اذا ما كان عندنا file
لاضافة متغيرات للفايل كما في البرنامج راح ندخل 4 متغيرات في ال jTextFiled ومن ثم نضغط add وخلص
شو راح يصير لما نضغط على الزر add
String v1= val1.getText(); String v2= val2.getText(); String v3= val3.getText(); String v4= val4.getText(); arabTeam2000 a = new arabTeam2000(v1,v2,v3,v4); values.insertElementAt(a,0); listToTable(); SaveToFile();
- اخذنا المتغيرات من ال jTextFileds
- عملنا object جديد من الكلاس arabTeam2000 أخذ الاربع قيم
arabTeam2000 a = new arabTeam2000(v1,v2,v3,v4);
- خزنا ال object الي عملناه في الvector
values.insertElementAt(a,0);
- استدعينا الميثود listToTable(); فقط لعرض القيم الي كتبناها في التكست فيلدز على التيبل
- ثم الميثود المهمة وهي الخاصة بالتخزين
SaveToFile();
ماذا تفعل الميثود SaveToFile(); التالي:
public void SaveToFile(){
try{
File f= new File("c:/data.dat");
FileOutputStream fos= new FileOutputStream(f);
ObjectOutputStream oos =new ObjectOutputStream(fos);
Iterator I= values.iterator();
while(I.hasNext())
{
oos.writeObject((arabTeam2000)I.next());
}
oos.close();
}catch(Exception e){}
}- اول شي تنشئ file جديد
File f= new File("c:/data.dat");
FileOutputStream fos= new FileOutputStream(f);
ObjectOutputStream oos =new ObjectOutputStream(fos);- نعمل iterator وهو مثل عداد ، هذا ال iterator نعمله لأخذ القيم من ال vector الي مخزن فيه البيانات
Iterator I= values.iterator();
- نعمل لوووب : طالما ال iterator يحتوي على Objects >> اذا خزن هذه الوبجكتس في الفايل
while(I.hasNext())
{
oos.writeObject((arabTeam2000)I.next());
}فقط.
هذه تجربتي مع الفايل
ارجو يكون المثال واضح
في المرفقات تجد ملفات الجافا جربها وان شاء الله تستفيد
الف شكر لك يا اخي الحرازي
بصراحه المثال صعب
ولكن انا اريد شيء ابسط من هذا بكثير
اريد ان انشئ ملف يحفظ اسم المستخدم وكلمة السر حتى يقارنهما عند دخول المستخدم الى البرنامج عن طريق شاشة ال Login حيث تطلب هذه الشاشة من المستخدم ان يدخل كلمة السر واسم المستخدم.
وانا اريد انشاء هذا الملف حتى يستطيع المستخدم تغيير كلمة السر واسم المستخدم عند الدخول الى الشاشة الرئيسية
:)
اذاً أخي المستقيل، راجع هذا الموضوع للأخ عيسى
فهو مناسب لطلبك، فيه كيفية الكتابة والقراءة من الفايل وبدون اي تعقيد
ان شاء الله يكون واضح
مشكور اخي اتعبتك معاي
هذا الموضوع مغلق.