سلام دوستان!
من در سایت fekrenaw.com یک مقاله کامل در مورد کار با فایل ها در J2ME گذاشته ام؛ فکر کنم به درد علاقمندان به این زبان بخوره
آموزش J2ME قسمت چهارم
سلام دوستان!
من در سایت fekrenaw.com یک مقاله کامل در مورد کار با فایل ها در J2ME گذاشته ام؛ فکر کنم به درد علاقمندان به این زبان بخوره
آموزش J2ME قسمت چهارم
کار نمیکنن همشون!
حتما باید روی گوشی تست بشن؟
دارم با NetBeans برنامه مینویسم باید چه ادرسی بهش بدم که فایل رو باز کنه یا بخونه؟
برای این آدرس: file:///c:/a.txt باید یه فایل توی درایو c با اسم a.txt بسازم؟
ممنون میشم یکی یه کد درست حسابی بده که کاملا کار کنه...
سلام دوستان این هشدار :
To avoid potential deadlock, operations that may block, such as networking, should be performed in a different thread than the commandAction() handler.
اینو میگه که در هر کلاسی که از Commandlistener یا هر نوع listener دیگه ای استفاده می کنی توابعی که نیاز به تایید کاربر داره رو استفاده نکن ، دلیلش هم بلاک شدن نخ جاری برنامه و به عبارتی هنگ برنامه میشود.
پس باید کلاسی از نوع Thread یا Runnable بسازی و در تابع run اون این توابع رو استفاده کنید بعد از بدست آوردن جواب نهایی اون رو به همون کلاسی که می خوای برگردونی.
یذره سنگین شد ولی امتحان کنید. میبینید دیگه اون warning رو نمی ده و برنامه کار می کنه.
البته برای بدست آوردن تمام روت های سیستم باید از دستور:
Enumeration e = FileSystemRegistry.listRoots();
استفاده کنید.
سلام :کار نمیکنن همشون!
حتما باید روی گوشی تست بشن؟
دارم با NetBeans برنامه مینویسم باید چه ادرسی بهش بدم که فایل رو باز کنه یا بخونه؟
برای این آدرس: file:///c:/a.txt باید یه فایل توی درایو c با اسم a.txt بسازم؟
ممنون میشم یکی یه کد درست حسابی بده که کاملا کار کنه.
برای NetBeans برای خواندن از کد زیر :
private void readFile() {
try {
FileConnection textFile = (FileConnection)Connector.open("file:///root1//hello.txt");
getTextBox().setString("");
InputStream fis = textFile.openInputStream();
byte[] b = new byte[1024];
int length = fis.read(b, 0, 1024);
fis.close();
if (length > 0) {
textBox.setString(new String(b, 0, length));
}
} catch (IOException ex) {
textBox.setString("Error");
}
}
توضیح هم نیاز نداره سادست.فقط آدرس را نگاه کنید که برای تست در امولاتور گذاشتم.
همچین آدرسی روی موبایل وجود نداره و به جاش باید از آدرس هایی شبیه این استفاده کرد:
file:///c:/other/test.txt
پوشه root برای امولاتور هم به راحتی قابل پیدا کردن هست (توی درایو ویندوز و پوشه Document and setting کلمه root1 را جستجو کنید)
و برای نوشتن در فایل هم از روش زیر استفاده کنید:
اینجا هم به آدرس فایل دقت کنید.public boolean writeFile(String data)
{
javax.microedition.io.Connection c = null;
java.io.OutputStream os = null;
try {
String src="file:///root1//" ;
c = javax.microedition.io.Connector.open(src, javax.microedition.io.Connector.READ_WRITE);
javax.microedition.io.file.FileConnection fc =
(javax.microedition.io.file.FileConnection) c;
if(!fc.isDirectory())
{
fc.mkdir();
}
fc.close();
c.close();
c = Connector.open(src+"new.txt", Connector.READ_WRITE);
fc = (FileConnection) c;
if(!fc.exists())
fc.create();
else
fc.truncate(0);
os = fc.openOutputStream();
OutputStreamWriter outWr=new OutputStreamWriter(os,"UTF-8");
outWr.write(data);
outWr.flush();
outWr.close();
return true;
} catch (Exception e) {
String st1=e.getMessage();
return false;
} finally {
try {
if (os != null)
{
os.close();
}
if (c != null)
c.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
کار سختی نیست.این کدها کاملا تست شده هستن.
البته من خودم با امروز 3 روزه که برنامه نویسی موبایل یاد گرفتم(در حال یادگیری).اما برنامه های گرافیک بالایی ساختم.
سلام :کار نمیکنن همشون!
حتما باید روی گوشی تست بشن؟
دارم با NetBeans برنامه مینویسم باید چه ادرسی بهش بدم که فایل رو باز کنه یا بخونه؟
برای این آدرس: file:///c:/a.txt باید یه فایل توی درایو c با اسم a.txt بسازم؟
ممنون میشم یکی یه کد درست حسابی بده که کاملا کار کنه.
برای NetBeans برای خواندن از کد زیر :
private void readFile() {
try {
FileConnection textFile = (FileConnection)Connector.open("file:///root1//hello.txt");
getTextBox().setString("");
InputStream fis = textFile.openInputStream();
byte[] b = new byte[1024];
int length = fis.read(b, 0, 1024);
fis.close();
if (length > 0) {
textBox.setString(new String(b, 0, length));
}
} catch (IOException ex) {
textBox.setString("Error");
}
}
توضیح هم نیاز نداره سادست.فقط آدرس را نگاه کنید که برای تست در امولاتور گذاشتم.
همچین آدرسی روی موبایل وجود نداره و به جاش باید از آدرس هایی شبیه این استفاده کرد:
file:///c:/other/test.txt
پوشه root برای امولاتور هم به راحتی قابل پیدا کردن هست (توی درایو ویندوز و پوشه Document and setting کلمه root1 را جستجو کنید)
و برای نوشتن در فایل هم از روش زیر استفاده کنید:
اینجا هم به آدرس فایل دقت کنید.public boolean writeFile(String data)
{
javax.microedition.io.Connection c = null;
java.io.OutputStream os = null;
try {
String src="file:///root1//" ;
c = javax.microedition.io.Connector.open(src, javax.microedition.io.Connector.READ_WRITE);
javax.microedition.io.file.FileConnection fc =
(javax.microedition.io.file.FileConnection) c;
if(!fc.isDirectory())
{
fc.mkdir();
}
fc.close();
c.close();
c = Connector.open(src+"new.txt", Connector.READ_WRITE);
fc = (FileConnection) c;
if(!fc.exists())
fc.create();
else
fc.truncate(0);
os = fc.openOutputStream();
OutputStreamWriter outWr=new OutputStreamWriter(os,"UTF-8");
outWr.write(data);
outWr.flush();
outWr.close();
return true;
} catch (Exception e) {
String st1=e.getMessage();
return false;
} finally {
try {
if (os != null)
{
os.close();
}
if (c != null)
c.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
کار سختی نیست.این کدها کاملا تست شده هستن.
البته من خودم با امروز 3 روزه که برنامه نویسی موبایل یاد گرفتم(در حال یادگیری).اما برنامه های گرافیک بالایی ساختم.
دوستان من تازه می خوام برنامه نویسی موبایل جاوا رو شروع کنم
لطفا کمکم کنید و لینک دانلود ملزومات مورد نیاز برای برنامه نویسی رو به ایمیلم بفرستید
pcmail1992@yahoo.com
یه دنیا ممنون
سلام
من من با این زبان یک دیکشنری ساده نوشتم.
اگه میخوای که در شبیه ساز از فایل بخونی باید اونو در ادرس زیر بگزاری:
C:\Users\mohamad\javame-sdk\3.0\work\0\appdb\filesystem\root1
البته بسته به شبیه سازی که استفاده می کنی باید فایلو در یکی از پوشه هایی که بت تعداد 0-12 که داخل work است بزاری