الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال عن كيفية عمل ملف dat. في الجافا

مغلق
بدأه المستقيل في 1 يونيو 2007 · 10 رد · 1,935 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اود السؤال عن كيفية عمل ملف (dat.) عن طريق الجافا وعن طريقة حفظ و اخذ معلومات منه

حيث ان لدي اربع متغيرات اود حفضها وقرائتها والتعديل عليها من غير استخدام الاكسس

#2

بغض النظر عن امتداد الملف

انت تريد حفظ اربع متغيرات داخل ملف

استخدم RandomAccessFile

منقطع من حين لاخر

#3

شكرا اخي ابو الفؤاد على ردك

بس ممكن اغلبك معي وتشرحلي هاي الطريقة؟

#5

أو ع الأقل ضع محاولاتك و إحنا نساعدك

يعني انت ف الأول هتعمل

FileReader fr = new FileReader ) "myfile.dat" )

بصراحه موش متذكر قوي ، موش عاوز أقولك حاجه غلط

#6

السلام عليكم

شوف هذا الموضوع

/index.php?showtopic=125547

#7

السلام عليكم

اشكركم على ردودكم

لقد قمت بانشاء ملف 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");
}
}
#8

محاوله جيدة اخي المستقيل

هناك طرق عديدة للتعامل مع ال 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());
		  }

فقط.

هذه تجربتي مع الفايل

ارجو يكون المثال واضح

في المرفقات تجد ملفات الجافا جربها وان شاء الله تستفيد

pro.bmp

JavaApplication.rar

#9

الف شكر لك يا اخي الحرازي

بصراحه المثال صعب

ولكن انا اريد شيء ابسط من هذا بكثير

اريد ان انشئ ملف يحفظ اسم المستخدم وكلمة السر حتى يقارنهما عند دخول المستخدم الى البرنامج عن طريق شاشة ال Login حيث تطلب هذه الشاشة من المستخدم ان يدخل كلمة السر واسم المستخدم.

وانا اريد انشاء هذا الملف حتى يستطيع المستخدم تغيير كلمة السر واسم المستخدم عند الدخول الى الشاشة الرئيسية

#10

:)

اذاً أخي المستقيل، راجع هذا الموضوع للأخ عيسى

فهو مناسب لطلبك، فيه كيفية الكتابة والقراءة من الفايل وبدون اي تعقيد

/index.php?showtopic=125547

ان شاء الله يكون واضح

#11

مشكور اخي اتعبتك معاي

هذا الموضوع مغلق.

مواضيع مشابهة