PDA

View Full Version : سوال: خواندن و نوشتن در جاوا



cnmeysam
یک شنبه 22 مرداد 1396, 03:58 صبح
سلام یه کمکی میخواستم راجع بع فایل متنی فقط در حد زیر دیپلم جواب بدین ممنون میشم آخه تازه کارم
من یه برنامه درست کردم که 2تا فرم داره توی فرم اول چند تا لیبل و ... وجود داره
توی فرم دوم چند تا کمبو که نام رنگ و سایز فونت توش نوشته شده
من میخوام بعد از زدن کلید ذخیره این تنظیمات مثلا:

jLabel1.setFont(new Font("Tahoma", Font.PLAIN,12))
txtsearch.setFont(new Font("Tahoma", Font.PLAIN,12))
combosearch.setFont(new Font("Tahoma", Font.PLAIN,12))
btnsearch.setFont(new Font("Tahoma", Font.PLAIN,12))


توی یک تکست ذخیره بشه
و توی فرم اول فراخوانی بشه
مشکلم اینجاست نمیتونم توی یک تکست اینارو ذخیره کنم وبعد توی فرم اول فراخوانی کنم تونستم یک خطش رو ذخیره کنم یا چند خطش رو ولی بعد از اینکه 2باره ذخیره رو میزنم یا به ادامه اینها دوباره اضافه میکنه یا مثلا اگه تیک آیتم اول رو بردارم ( براشون چک باکس گذاشتم ) فقط 3تاش رو ذخیره میکنه
اگه میشه راهنماییم کنید یا اگه راه حل بهتری دارید برای درست کردن ( ذخیره کردن ) تنظیمات با آموزش برام توضیح بدید

این کد من برای ذخیره هستش:



if (checksearch.isSelected())
{
String st1 = "jLabel1.setFont(new Font(\""+combofont.getSelectedItem().toString()+"\", Font.PLAIN," +combosize.getSelectedItem().toString()+ "))";
writeToFile(st1);

}
if (checktxtsearch.isSelected())
{
String st2 = "txtsearch.setFont(new Font(\""+combofont.getSelectedItem().toString()+"\", Font.PLAIN," +combosize.getSelectedItem().toString()+ "))";
writeToFile(st2);

}
if (checkcombosearch.isSelected())
{
String st3 = "combosearch.setFont(new Font(\""+combofont.getSelectedItem().toString()+"\", Font.PLAIN," +combosize.getSelectedItem().toString()+ "))";
writeToFile(st3);

}
if (checkbtnsearch.isSelected())
{
String st4 = "btnsearch.setFont(new Font(\""+combofont.getSelectedItem().toString()+"\", Font.PLAIN," +combosize.getSelectedItem().toString()+ "))";
writeToFile(st4);

}
System.out.println("File created successfully!");

cnmeysam
یک شنبه 22 مرداد 1396, 15:06 عصر
کسی نیست جواب یا راه حلی بده؟

vahid-p
دوشنبه 23 مرداد 1396, 10:21 صبح
کد زیر دو تابع داره یکی برای save و یکی برای load. ورودی و خروجی آرایه ای از نوع String هست. در متد main هم یک مثال نوشتم که بشه عملکردش رو دید

import java.io.File;import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Scanner;


public class Settings {


private final static String SETTING_FILE_PATH = "settings.txt";


public static boolean saveSettings(String[] settings) {
if (settings == null) {
return true;
}
PrintWriter printWriter = null;
try {
File file = new File(SETTING_FILE_PATH);
printWriter = new PrintWriter(file);
for (String setting : settings) {
printWriter.println(setting);
}
printWriter.flush();
} catch (IOException ex) {
System.out.println(ex.getMessage());
return false;
} finally {
if (printWriter != null) {
printWriter.close();
}
}
return true;
}


public static String[] loadSettings() {
Scanner cin = null;
ArrayList<String> settings = new ArrayList<>();
try {
File file = new File(SETTING_FILE_PATH);
cin = new Scanner(file);
while (cin.hasNextLine()) {
String str = cin.nextLine();
settings.add(str);
}
} catch (IOException ex) {
System.out.println(ex.getMessage());
return null;
} finally {
if (cin != null) {
cin.close();
}
}
return (String[]) settings.toArray(new String[0]);
}


public static void main(String[] args) {
String[] sets = new String[]{"abx", "cd", "123"};
saveSettings(sets);
String[] settings = loadSettings();
for (String str : settings) {
System.out.println(str);
}
}
}