View Full Version : خواندن و نوشتن فایل
samira222
پنج شنبه 07 آبان 1388, 23:47 عصر
سلام
من برای یکی دو تا فایل متنی دارم که برای خوندن و نوشتنشون به مشکل برخوردم
دو تا تابع از تاپیک های بچه های همین سایت پیدا کردم اما موقع اجرا خطا میده ,نمی دونم چرا؟
من خیلی مبتدی هستم برای همین از اول دقیقا می گم چیکار کردم که مشکل راحت تر پیدا بشه
اول اومدم فایل رو توی پوشه ی src کپی کردم و بعد تابع عای زیر رو در برنامه کپی کردم , دو تا textbox هم در فرمم گذاشتم + یک دستور ok
تابع ها اینها هستن:
******************KHANDAN AZ FILE:
public String readUnicodeFile(String src,String encoding)
{
StringBuffer buffer=new StringBuffer();
java.io.InputStream is = null;
java.io.InputStreamReader isr = null;
try {
int ch=0;
Class c=this.getClass();
is = c.getResourceAsStream(src);
isr = new InputStreamReader(is,encoding);
while((ch=isr.read())>-1)
buffer.append((char) ch);
isr.close();
if (is != null)
{
is.close();
}
}
catch (Exception ex)
{
ex.printStackTrace();
}
return buffer.toString();
}
***********NEVESHTAN DAR FILE:
public boolean writeFile(String path, String data)
{
javax.microedition.io.Connection c = null;
java.io.OutputStream os = null;
try {
String src="file:///E:/YourDIR" ;
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+"/YourFile.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();
}
}
}_________
برای استفاده هم در command ok نوشتم
String stText=readUnicodeFile("/Files/MyText.txt","UTF-8"
String data="Your Data in File .";
writeFile("file:///YourDIR/YourFile.txt", data);
حالا مشکل از کجاست؟
واقعا ممنون می شم راهنماییم کنین
it4six
جمعه 08 آبان 1388, 00:24 صبح
ساده ترین راه جاوا ::
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyBytes {
public static void main(String[] args) throws IOException {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("xanadu.txt");
out = new FileOutputStream("outagain.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
} finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}
samira222
شنبه 09 آبان 1388, 19:58 عصر
سلام
ممنون از توجهتون
من کد شما رو وارد کردم اما برای همش خط کشید و خطا گرفت
من ترجیحا می خوام همین کد بالا رو درست کنم
اگه لطف کنید و اشکال همین رو بگید ممنون می شم
خواهشا زودتر راهنمایی کنید که داره خیلی دیر می شه من باید این رو زودتر از اینا تحویل می دادم
واقعا ممنونم
java.source.ir
شنبه 09 آبان 1388, 21:38 عصر
سلام
ا- لطفا متن خطایی که برنامه به شما می دهد را قرار دهید.
2- اگر می خواهید فارسی در درون فایلتان بنویسید بهتر است به مقاله زیر نگاهی بیندازید:
http://java.tadbirpoya.ir/articles/JAVA%20SE/File-Folder/Read-Write-UTF-8.htm
موفق و سربلند باشید.
manvaputra
شنبه 09 آبان 1388, 22:54 عصر
سلام دوست عزيز آموزش كامل رو توي اين دو لينك گذاشتم قبلا ،مي تونه كمك خوبي باشه، خوب بررسيشون كن هر جا مشكل داشتي بپرس:
استریمها در جاوا - قسمت اول (http://www.barnamenevis.org/forum/showthread.php?p=646123)
استریمها در جاوا - قسمت دوم (http://barnamenevis.org/forum/showthread.php?p=646121#post646121)
samira222
یک شنبه 10 آبان 1388, 11:54 صبح
سلام
نمی دذونم چرا هر کاری می کنم مشکل دار می شه !!!؟ :ناراحت::گریه:
به خدا دیوانه شدم
کلی کد رو امتحان کردم ولی فکر کنم مشکل از این جاست که من دقیقا نمی دونم باید این جور توابع رو دقیقا کجا بزارم و کجا استفاده کنم
فکر می کنم مشکل این جاست
می شه لطف کنید همین توابع رو در خود برنامه استفاده کنید و برنامه رو تو سایت قرار بدین
این طوری واقعا ممنون می شم :خجالت:
متشکرم
manvaputra
یک شنبه 10 آبان 1388, 13:42 عصر
دوست عزيز توي اون لينكايي كه بهتون دادم كد برنامه موجود هست ، يعني آموزش بر اساس همون كد موجود داده شده. اين ساده ترين حالت توضيح دادن خوندن از يك فايله:
import java.io.*;
public class file {
public static void main(String[] args) throws Exception {
FileInputStream fileInput = new FileInputStream("c:\\manvaputra.txt");
BufferedInputStream txt = new BufferedInputStream(fileInput );
while (txt.available() > 0)
{
System.out.print((char)txt.read());
}
}
}
mzeadabadi@gmail.com
چهارشنبه 13 آبان 1388, 09:17 صبح
با سلام شما باید این کد ها رو کنار باقی زیر برنامه هاتون پیست کنید
بعد در ارتباطی که بین فرمهاتون در زبانه follow در netbeans هست کلیک کنید و اسم این زیربرنامه رو اونجا وارد کنید تا اجرا بشه
samira222
پنج شنبه 21 آبان 1388, 11:39 صبح
سلام
اول از همتون تشکر کنم , واقعا دستتون درد نکنه , خدا خیرتون بده , ممنون
راستش به من گفتن این روشی که دارم میرم از بنیاد خرابه و اشکال داره:اشتباه:
اون کسی که از من این کار رو خواسته می گه که چیزی که من خواستم استفاده از منابع هست نه فایل
راستش من خودمم هنوز دقیقا نمی فهمم یعنی چی !؟:افسرده:
ولی می گه فایل ادرس داره ولی منابع ادرس ندارن و یک سری از این تفاوتها .....
شما می تونین در این مورد کمکم کنین !!!؟
حسابی گیج شدم تازه با فایلها داشتم به یک جاهایی می رسیدم که باز خراب شد :اشتباه:
ممنون می شم راهنماییم کنین
samira222
جمعه 22 آبان 1388, 12:59 عصر
سلام
من برای چیزی که گفتم یک لینک کد پیداا کردم
اما کدش رو وارد برنامه که می کنم همش خطا می شه , نمی دونم اشکال از کجاست ؟
می دونم شاید پررویی به نظر برسه اما می شه خواهش کنم لطفا شما توی برنامه واردش کنین و برنامه رو اینجا بزارین تا ببینم اشکال کجاست ؟ چون من هر جای برنامه که استفاده کردم زیر همش خط قرمز می کشه و خطا می گیره !! :ناراحت:
لینکش اینه :
http://wiki.forum.nokia.com/index.php/How_to_create_localized_text_resources
خواهش می کنم راهنماییم کنین چون باید تا حداکثر یک شنبه حداقل با یک خروجی تحویل بدم
ممنونم
mzeadabadi@gmail.com
دوشنبه 25 آبان 1388, 11:00 صبح
این متنی که شما نوشتید اصلا مال برناه نویسی موبایل نیست مال خود جاوا است
samira222
دوشنبه 25 آبان 1388, 20:20 عصر
یعنی چی !!!؟؟ منظورتون رو متوجه نمی شم
یعنی کد موجود توی اون لینک مال جاواست ؟
الان من باید چی کار کنم !!!؟؟؟ :ناراحت:
من کاملا مبتدی هستم یک غلطی کردم این برنامه رو قبول کردم حالا حسابی توش گیر کردم
تو رو خدا اگه می تونین کمکم کنین به خدا ثواب داره
delphidark
یک شنبه 01 آذر 1388, 18:01 عصر
این متنی که شما نوشتید اصلا مال برناه نویسی موبایل نیست مال خود جاوا است
این بنده خدا هم نخواسته که J2ME برا موبایل بنویسه....
اصلا حرفی از موبایل نبود:متفکر:
دوست عزیز خیلی دلم میخواد کمک کنم اما به دلیل نفرت از سان و جاوا !:بامزه: زیاد این زبون رو بلد نیستم
اصلا زبون قحطی بود ؟ با جاوا .........:اشتباه:
حالا واسه کسی که به شما این پروژه رو داده چه فرقی میکنه که از فایل استفاده کنی یا منابع Resource ؟
به هر حال بگو در کل چی میخوای تا شاید فرجی بشه....:چشمک:
samira222
یک شنبه 01 آذر 1388, 21:28 عصر
سلام
اول از همه خیلی خیلی ممنون :لبخندساده:
فقط یک چیزی بگم که اتفاقا منم برای موبایل می نویسم و با j2me فقط خواهشا این دفعه رو خوشتون بیاد !!! :چشمک:
از اول می گم که متوجه بشین : من می خوام یک برنامه بنویسم با netbeans که از فایل متنی به عنوان منبع در برنامه استفاده کنه
بعد از کلی گشت و گذار بالاخره تونستم کدهاش رو پبدا کنم
کد مربوط به نوشتنش رو کاملا خطا می گیره (فعلا اونو بی خیال) اما کد مربوط به خوندن رو خطا نمی گیره برای فراخونیش هم من گفتم که وقتی روی دکمه ok کلیک می کنه تو textfield واقع در صفحه متنش ظاهر بشه!!
اما اجرا می شه ولی هیچ اتفاقی نمیفته , در ضمن فایل متنی رو هم تو پوشه ی sr گذاشتم
اینم تابع :
public String readUnicodeFile(String filename) {
StringBuffer buffer = null;
InputStream is = null;
InputStreamReader isr = null;
try {
Class c = this.getClass();
is = c.getResourceAsStream(filename);
if (is == null)
throw new Exception("File Does Not Exist");
isr = new InputStreamReader(is,"UTF8");
buffer = new StringBuffer();
int ch;
while ((ch = isr.read()) > -1) {
buffer.append((char)ch);
}
if (isr != null)
isr.close();
} catch (Exception ex) {
System.out.println(ex);
}
return buffer.toString();
}
و برای فراخونی هم اینو نوشتم :
textField.setString(readUnicodeFile("MyText.txt")) ;
البته اینم نوشتم ولی فرقی نکرد
textField.setString(readUnicodeFile("//MyText.txt"));
البته موقع اجرا خطا میده که فکر کنم یعنی فایل رو پیدا نمی کنه
بازم ممنون
delphidark
دوشنبه 02 آذر 1388, 18:11 عصر
با این حساب من باید متن بالاییم رو ویرایش کنم !!!
بگذریم...
کدی که نوشتید به نظرم مال application جاواست نه مال J2ME
برای نوشتن J2ME تو netbeans باید مکملی به نام netbeans mobility pack رو نصب کنید و نوع پروژه رو هم مخصوص موبایل تعیین کنید....
تا جایی که من از J2me میدونم کار با فایلها 2 نوع داره
یکی فایلهای درونی و یکی هم بیرونی
درونی ها اونهایی هستند که تو خود فایل jar هستند (سورس فایلها) و بیرونی ها هم بر عکس اون !
امیدوارم متوجه شده باشید
اگه شما یه دیتا بیس تو برنامتون میخواین برای ذخیره کردن رکوردها و ... راه دیگه ای داره
نیازی به فایل نیست ....
در آخر هم یک توصیه :
اگه هدفتون فقط نوشتن یک برنامه کاربردی موبایله لازم نیست با این جاوای کوفتی سرو کله بزنید راه ساده تری به نام Midlepascall هست
درواقع این یه محیط برای برنامه نویسی موبایل به زبون شیرین پاسکاله
موفق باشید:چشمک:
samira222
دوشنبه 02 آذر 1388, 19:12 عصر
سلام
دستتون درد نکنه از پیگیریتون , یک دنیا ممنون
ببینید من از همون مدل فایل های درونی می خوام که تو خود فایل jar هستن
من دیتا بیس نمی خوام , می دونم می تونستم از rms استفاده کنم اما کاربرد این برنامه جوریه که فقط باید فایل متنی باشه , یکی از دلایلشم تا جایی که من می دونم بالا رفتم سرعته و یک سری دلایل دیگه که راستش من زیاد از شون سر در نمیارم
با بدبختی تمام به من گفتن هیچ راهی ندارم جز اینکه با همین جاوای کوفتی سر و کله بزنم
کد بالا هم که نوشتم مطمئن هستین کد j2me نیست ؟ اخه من از توی یک سایت خارجی د ر اوردم و بالاش نوشته بود که کد j2me هست!!
دیگه من امیدم به شماست , خواهشا هر طوری می تونی کمکم کن
:خجالت:
ممنونم
delphidark
سه شنبه 03 آذر 1388, 09:59 صبح
آدرس جایی که به احتمال 90% جواب میگیری رو به پیام خصوصیت فرستادم(به دلیل قوانین انجمن)
امیدوارم که مشکلت حل شه....
samira222
سه شنبه 03 آذر 1388, 18:18 عصر
سلام
پیامتون به دستم نرسید:متعجب:
می شه دوباره لطف کنید بفرستید
خیلی خیلی ممنون:چشمک:
delphidark
دوشنبه 09 آذر 1388, 20:38 عصر
آدرس سایت رو نوشتم که پاک شد !!! (خلاف قوانین بود !)
پیام خصوصیم هم کار نمیکنه !!!!
آدرس رو متوجه شدید ؟
samira222
چهارشنبه 11 آذر 1388, 21:08 عصر
نه!!! ولی به هر حال متشکرم
همین که توجه کردین یک دنیا ممنون:لبخندساده:
راستش دادم به خودشون تا حلش کنن چون دیگه کاری از دست من برنمیومد :ناراحت:
بازم ممنون
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.