آموزش ایجاد یک فایل در برنامه نویسی اندروید
سلام دوستان در این سری از آموزش های برنامه نویسی اندروید به آموزش ایجاد یک فایل در برنامه نویسی اندروید می پردازیم ساخت فایل در بعضی مواقع نیاز است تا ما به طور مثال یک فایل متنی درست کرده و یکسری دیتا را به صورت تکست در آن قرار دهیم یا می توانیم به عنوان یک دیتابیس کاملا نابود می توان از آن استفاده کرد .در ادامه با ما همراه باشید.
برای اینکه ما یک فایل txt با دیتا درست کنیم باید از کلاس های File و FileOutputstream استفاده کنیم.
1 2 3 4 5 | String FILENAME = "TestFileName"; String string = "hello world! Programchi.ir :)"; FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE); fos.write(string.getBytes()); fos.close(); |
کد بالا یک یک فایل به نام TestFileName ایجاد می کند که محتوای آن برابر با متغییر string ما ست برای اینکه داده رو در فایل بنویسیم راحت ترین کار استفاده از کلاس FileOutputStream است و به صورت معمول نمیشه دیتا رو با این متد ذخیره کرد و باید دیتا را تبدیل به بایت کنیم برای این کار هم از getBytes استفاده کردیم فایل بالا رو ما بهش مسیر ندادیم ولی به طور پیشفرض در حافظه داخلی گوشی ایجاد می شود.
در ادامه به یک کد بسیار کاربردی می پردازیم کد بالا برای درک مطلب بوده است.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | public void generateNoteOnSD(Context context, String sFileName, String sBody) { try { File root = new File(Environment.getExternalStorageDirectory(), "Notes"); if (!root.exists()) { root.mkdirs(); } File gpxfile = new File(root, sFileName); FileWriter writer = new FileWriter(gpxfile); writer.append(sBody); writer.flush(); writer.close(); Toast.makeText(context, "Saved", Toast.LENGTH_SHORT).show(); } catch (IOException e) { e.printStackTrace(); } } |
ما یک void درست کردیم که 3 مقدار ورودی دارد یک context , نام فایل و محتوا در بالا ما با استفاده از کلاس Environment مسیر حافظه جانبی (External) رو به دست میاریم یه نکته الان اگر بخواهیم مسیر حافظه داخلی رو بگیریم باید خظر زیر را تغییر بدیم
1 | File root = new File(Environment.getExternalStorageDirectory(), "Notes"); |
را به خط زیر تغییر دهید.
1 | String root = getFilesDir().getAbsolutePath(); |
و با استفاده از کلاس FileWritter داده را به فایل اضافه می کنیم.
writer.append داده را به فایل متنی اضافه می کند.
writer.flush زمانی که ما می خواهیم داده در فایل بنویسیم ابتدا داده در بافر قرار می گیرد با flush کردن بررسی می کنیم تا دیتا تا اخرش در فایل نوشته شود به خاطر همین استفاده از آن ضروری است. اگر به زبان ساده بگیم بررسی می کنه که دیتا نوشته شده است یا نه.
writer.close این کلاس همانطور که از نام آن پیدا است کلاس Filewriter را می بندد
و در آخر هم ما یک Toast قرار داده ایم تا بررسی کنیم ایا فایل به درستی ایجاد و ذخیره شده است.
مثل همیشه باید دسترسی استفاده از حافظه خارجی را در بخش AndroidManifest.xml به آن اضافه کنیم.
1 | <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> |
و برای استفاده از آن هم باید همانند زیر عمل کنید
1 | generateNoteOnSD(getApplicationContext(),"نام فایل","data"); |
این آموزش هم همانند آموزش های قبلی به پایان رسید .
موفق باشید.
سلام .خسته نباشید..
این کدEnvironment.getExternalStorageDirectory()رو من استفاده کردم مسیر حافظه داخلی رو برمیگردونه…
چون تو پروژم نیاز دارم ک از یکسری اطلاعات داخل حافظه جانبی پشتیبان گیری کنم خیلی تحقیق کردم کدهای زیادی هم امتحان کردم ولی متاسفانه هیچ راهی نیست ک ب طور صد در صد تضمین کنه ک میشه مسیر حافظه جانبی رو ب دست اورد و روی دیوایس های مختلف نتایج مختلفی داره …لطفا اگه شما راهی رو سراغ دارید ممنون میشم ب اشتراک بگذارید ممنون..
این تابع رو تست کنید به احتمال زیاد جواب میده: