کانال بله, جهت پشتیبانی و اطلاع رسانی کانال بله, جهت پشتیبانی و اطلاع رسانی
عضویت

آموزش حافظه داخلی اندروید

android-آموزش اندروید-آموزش برنامه نویسی اندروید

آموزش حافظه ی داخلی اندروید

اندروید حافظه های متفاوتی برای ذخیره سازی داده های مربوط به برنامه ها ارائه می دهد. این حافظه ها عبارتند از: preference های به اشتراک گذاشته شده، حافظه ی داخلی، حافظه ی خارجی، حافظه ی QLite ، و ذخیره سازی از طریق اتصال به شبکه.

در این فصل قرار است حافظه ی داخلی را مورد بررسی قرار دهیم. حافظه ی داخلی محل ذخیره سازی داده های شخصی بر روی حافظه ی دستگاه می باشد.

این فایل ها به طور پیش فرض شخصی بوده و تنها از طریق برنامه های شما قابل دسترسی می باشند و زمانی پاک می شوند که یوزر برنامه ی شما را پاک کرده باشد.

نوشتن فایل در حافظه ی داخلی اندروید

برای استفاده از حافظه ی داخلی و نوشتن برخی داده ها در فایل، روش openFileOutput() را با نام فایل و سبک مورد نظر فرا بخوانید. سبک آن می تواند شخصی یا همگانی باشد. ترکیب آن در زیر ارائه شده است .

                FileOutputStream fOut = openFileOutput("file name ‎here",MODE_WORLD_READABLE);
            

روش openFileOutput() نمونه ای از FileOutputStream را گزارش می دهد. بنابراین شما آن را در آبجکت FileInputStream دریافت می کنید. پس از آن می توانید روش نوشتن را برای نوشتن داده روی فایل، فرا بخوانید. ترکیب آن را می توانید ببینید .

        String str = "data";‎
        fOut.write(str.getBytes());‎
        fOut.close();
            

خواندن فایل در حافظه ی داخلی اندروید

برای خواندن فایلی که ایجاد کرده اید، روش openFileInput() را با نام فایل فرا بخوانید، که یک نمونه از FileInputStream را گزارش می دهد. ترکیب آن به شکل زیر می باشد.

                FileInputStream fin = openFileInput(file);
            

پس از آن می توانید روش خواندن را برای خواندن یک کاراکتر تر از فایل فرا خوانده و سپس آن را چاپ کنید. ترکیب آن مانند زیر می باشد.

int c;‎
String temp="";‎
        while( (c = fin.read()) != -1){‎
    ‎   temp = temp + Character.toString((char)c);‎
    ‎}‎
        ‎//string temp contains all the data of the file.‎
        fin.close();            
           

علاوه بر این روش های نوشتن، روش های دیگری نیز برای نوشتن بهتر وجود دارند که در گروه FileOutputStream ارائه می شوند، این روش ها در زیر ارائه شده اند.

متد ها و توضیحات
ردیف
FileOutputStream(File file, boolean append) یک FileOutputStream جدید می سازد که روی فایل می نویسد.
1
getChannel() این روش یک write-only FileChannel را گزارش می دهد که مقعیت خود را با این جریان به اشتراک می گذارد.
2
getFD() این روش فایل توصیف گر اصلی را گزارش می دهد.
3
write(byte[] buffer, int byteOffset, int byteCount) این روش بایت های count را از بسته بایت بافر می نویسد که از مقعیت افست این جریان آغاز می کند.
4

همچنین برای خواندن، روش های بیشتری برای خواندن بهتر فایل ها وجود دارند که توسط گروه FileInputStream ارائه می شوند. لیست این روش ها را می توانید در زیر ببینید.

متد ها و توضیحات
ردیف
available() این روش یک تعداد تقریبی از بایتهایی ارائه می دهد که می توانند خوانده شوند و یا بدون بلاک شدن برای داخلی بیشتر، نادیده گرفته شوند.
1
getChannel() این روش یک read-only FileChannel را گزارش می دهد که موقعیت خود را با این جریان به اشتراک گذاشته است.
2
getFD() این روش فایل توصیف گر اصلی را گزارش می دهد.
3
read(byte[] buffer, int byteOffset, int byteCount) این روش بایت هایی با بیشترین طول را در این جریان می خواند وآن ها را با شروع در افست، در ردیف بایت ذخیره می کند.
4

مثال:

در اینجا مثالی را می بینید که استفاده از حافظه ی داخلی را برای خواندن و ذخیره ی فایل توضیح می دهد. این مثال یک برنامه ی ذخیره سازی پایه ایجاد می کند که به شما اجازه می دهد تا از حافظه ی داخلی بخوانید و بنویسید.

برای اجرای این مثال به یک دستگاه واقعی یا یک emulator نیاز دارید.

متد ها و توضیحات
ردیف
برای ایجاد یک برنامه ی اندروید از Eclipse IDE استفاده خواهید کرد و آن را با عنوان Storage تحت بسته ی com.example.storage. نام گذاری کنید. زمان ایجاد این برنامه مطمئن شوید که Target SDK و Compile With در آخرین ورژن Android SDK هستند تا از سطوح بالاتر API استفاده کنید.
1
فایل src/MainActivity.java را برای افزودن کد لازم تغییر دهید.
2
res/layout/activity_main را برای افزودن مولفه های XML مربوطه تغییر دهید.
3
res/values/string.xml را برای افزودن مولفه های رشته ی لازم تغییر دهید.
4
برنامه را اجرا کنید، یک دستگاه اجرایی اندروید انتخاب کنید و برنامه را روی آن نصب کرده و نتایج را بررسی کنید.
5

در زیر محتوای تغییر یافته ی فایل فعالیت اصلی را مشاهده می کنید.

        src/com.example.storage/MainActivity.java. ‎
        package com.example.storage;‎
        import java.io.FileInputStream;‎
        import java.io.FileOutputStream;‎
        import java.io.InputStreamReader;‎
        import android.app.Activity;‎
        import android.os.Bundle;‎
        import android.view.Menu;‎
        import android.view.View;‎
        import android.widget.EditText;‎
        import android.widget.Toast;‎
public class MainActivity extends Activity {‎
        ‎   private EditText et;‎
        ‎   private String data;‎
        ‎   private String file = "mydata";‎
        ‎   @Override
    ‎   protected void onCreate(Bundle savedInstanceState) {‎
        ‎      super.onCreate(savedInstanceState);‎
        ‎      setContentView(R.layout.activity_main);‎
        ‎      et = (EditText)(findViewById(R.id.editText1));‎
        ‎   }‎
            ‎   public void save(View view){‎
        ‎      data = et.getText().toString();‎
        ‎      try {‎
            ‎         FileOutputStream fOut = ‎openFileOutput(file,MODE_WORLD_READABLE);‎
            ‎         fOut.write(data.getBytes());‎
            ‎         fOut.close();‎
            ‎         Toast.makeText(getBaseContext(),"file saved",‎
                    ‎         Toast.LENGTH_SHORT).show();‎
            ‎      } catch (Exception e) {‎
            ‎         // TODO Auto-generated catch block
            ‎         e.printStackTrace();‎
            ‎      }‎
        ‎   }‎
            ‎   public void read(View view){‎
        ‎      try{‎
            ‎         FileInputStream fin = openFileInput(file);‎
            ‎         int c;‎
            ‎         String temp="";‎
            ‎         while( (c = fin.read()) != -1){‎
                ‎            temp = temp + Character.toString((char)c);‎
                ‎         }‎
            ‎         et.setText(temp);‎
            ‎         Toast.makeText(getBaseContext(),"file read",‎
                    ‎         Toast.LENGTH_SHORT).show();‎
            ‎      }catch(Exception e){‎
            ‎      }‎
        ‎   }‎
            ‎   @Override
    ‎   public boolean onCreateOptionsMenu(Menu menu) {‎
        ‎      // Inflate the menu; this adds items to the action bar ‎if it is present.‎
        ‎      getMenuInflater().inflate(R.menu.main, menu);‎
        ‎      return true;‎
        ‎   }‎
            ‎}
            

در زیر محتوای تغییریافته ی xml فایل res/layout/activity_main.xml را مشاهده می کنید.


    ‎
 
    ‎   ‎
 
    ‎   ‎
 
    ‎   
        ‎
 
        ‎      ‎
        ‎   ‎
 
‎

            

در زیر محتوای res/values/string.xml را مشاهده می کنید.



‎
‎
‎
 
    ‎   Storage‎
    ‎   Settings‎
    ‎   Hello world!‎
    ‎   save to intenal storage‎
    ‎   load from intenal storag‎
lt;/resources>&
            

در زیر محتوای فایل AndroidManifest.xml را مشاهده می کنید.


‎
‎
‎
 
    ‎   ‎
 
    ‎   
        ‎
        ‎      
            ‎
            ‎         
                ‎
                ‎            ‎
 
                ‎            ‎
                ‎
            ‎
            ‎      ‎
            ‎   ‎
 
‎

            

اجازه بدهید برنامه ی ذخیره سازی خود را اجرا کنیم. فرض می کنیم که در هنگام انجام تنظیمات محیط، AVD خود را ایجاد کرده اید. برای اجرای برنامه از eclipse، یکی از فایل های فعالیت پروژه را باز کنید و روی آیکن Run از تولبار کلیک کنید. Eclipse برنامه را روی AVD شما نصب و آغازمی کند و اگر همه چیز در مورد برنامه و تنظیمات درست باشد، پنجره ی Emulator زیر نمایش داده خواهد شد.

آموزش حافظه ی داخلی اندروید

حال آنچه باید انجام دهید، اضافخ کردن متن در فیلد می باشد. به عنوان مثال من متن soem را وارد کرده ام. سپس دکمه ی save را فشار دهید. پیام زیر روی AVD شما نمایش داده خواهد شد.

آموزش حافظه ی داخلی اندروید

حالا وقتی که شما دکمه load را فشار دهید، برنامه فایل شما را خواهد خواند و داده را نمایش خواهد داد. در مورد ما داده ی زیر گزارش داده می شود.

آموزش حافظه ی داخلی اندروید

توجه داشته باشید که شما می توانید این فایل را با تغییر به تب DDMS مشاهده کنید. File explorer را انتخاب کرده و این مسیر را به پیش بروید.

                data>data>com.example.storage>files>mydata
            

این مسئله نیز دز تصویر زیر نشان داده شده است.

آموزش حافظه ی داخلی اندروید
1394/07/27 4127 1759
رمز عبور : tahlildadeh.com یا www.tahlildadeh.com
نظرات شما

نظرات خود را ثبت کنید...