ورود

View Full Version : SAVE IN JAVA



شایان ط
یک شنبه 06 بهمن 1392, 13:31 عصر
سلام هر کسی میتونه کمکم کنه من یه برنامه ای نوشتم حالا میخوام در حین اجرا امکان سیو هم داشته باشه چجوری میشه تمام اطلاعات موجود در یه کلاس رو توی یه ابجکت نگه داشت اگه راه دیگه ای هم به نظرتون میاد لطفا کمک کنید.

a.seieddokht
یک شنبه 06 بهمن 1392, 15:56 عصر
سلام هر کسی میتونه کمکم کنه من یه برنامه ای نوشتم حالا میخوام در حین اجرا امکان سیو هم داشته باشه چجوری میشه تمام اطلاعات موجود در یه کلاس رو توی یه ابجکت نگه داشت اگه راه دیگه ای هم به نظرتون میاد لطفا کمک کنید.


سلام یعنی شما میخواهید که ابجکت رو بخوابونید تو فایل ؟

شایان ط
یک شنبه 06 بهمن 1392, 16:37 عصر
اره مگه نمیگیم object بالاترین کلاس هست آیا نمیشه ؟ اگه نمیشه یه راه دیگه برای سیو کردن میدونید؟

محمد فدوی
یک شنبه 06 بهمن 1392, 20:00 عصر
FileOutputStream fos = new FileOutputStream("/home/me/path/to/file.tmp");
ObjectOutputStream oos = new ObjectOutputStream(fos);

// WRITE INTEGER
oos.writeInt(2);

// WRITE STRING
oos.writeObject("Hello World!");

// WRITE OBJECT
oos.writeObject( /* Some Object Here */ );

oos.close();

a.seieddokht
یک شنبه 06 بهمن 1392, 22:44 عصر
اره مگه نمیگیم object بالاترین کلاس هست آیا نمیشه ؟ اگه نمیشه یه راه دیگه برای سیو کردن میدونید؟

بله درسته میشه ابجکت رو تو فایل نگه داشت به شرط اینکه اون شی سریالایز باشد یعنی وقتی اون ابجکت رفت روی رم به صورت دفرگ شده باشد در حالت عادی ابجکت بر روی رم پخش است و یکپارچه نیست

واسه این کار هم اگه سرچ کنی مطلب زیاد هست

موفق باشید:لبخندساده:

vahid-p
پنج شنبه 10 بهمن 1392, 13:29 عصر
برای اینکار یه کلاس مینویسی با چند تا فیلد که تنها فیلد ها ذخیره میشن. ( کاری با متدها و کانستراکتور نداره )
کلاست میتونه چنین چیزی باشه :

import java.io.Serializable;

public class ObjToSave implements Serializable{
int x;
int y;
String str;

public ObjToSave(int x, int y, String str) {
this.x = x;
this.y = y;
this.str = str;
}
}

حالا هم برای ارسال به فایل و هم برای خوندن از فایل از همین کلاس استفاده میکنی که یه مثالش رو پایین نوشتم. اگه حجمش زیاده به خاطر Exception هاست و در اصل خیلی سادست.

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Main {

public static void main(String[] args) {
ObjectOutputStream oos = null;
ObjectInputStream inputStream=null;
ObjToSave ots=new ObjToSave(10, 30, "test");
ObjToSave ots2=null;

//File khorooji
try {
oos=new ObjectOutputStream(new FileOutputStream("out.txt"));
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.S EVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.S EVERE, null, ex);
}

//Ersal object be file
try {
oos.writeObject(ots);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.S EVERE, null, ex);
}

//File voroodi
try {
inputStream=new ObjectInputStream(new FileInputStream("out.txt"));
} catch (FileNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.S EVERE, null, ex);
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.S EVERE, null, ex);
}
//Khandan file va zakhire dar objecti ke az haman noe baraye zakhire estefade shode va casting kardan an
try {
ots2=(ObjToSave) inputStream.readObject(); //casting be object moshabehe zakhire shode
} catch (IOException ex) {
Logger.getLogger(Main.class.getName()).log(Level.S EVERE, null, ex);
} catch (ClassNotFoundException ex) {
Logger.getLogger(Main.class.getName()).log(Level.S EVERE, null, ex);
}
System.out.println("X="+ots2.x+" - Y="+ots2.y+" - String="+ots2.str);
}

}