خانه اندروید

800 ساعت آموزش اختصاصی

بیش از 30 هزار دانشجو

آموزش های پروژه محور

مطالب پیشنهادی حتما مشاهده کنید :

نوشتن اطلاعات حافظه داخلی فایل ها اندروید استودیو FileOutputStream

نوشتن اطلاعات حافظه داخلی فایل ها اندروید استودیو FileOutputStream

نوشتن اطلاعات حافظه داخلی فایل ها اندروید استودیو FileOutputStream

آموزش کار با حاظه داخلی و نوشتن اطلاعات در فایل اندروید استودیو

حافظه داخلی فایل ها

بنام خدا عرض سلام و احترام خدمت کاربران گرامی خانه اندروید قصد داریم در این پست به شما عزیزان کار با فایل ها رو توی اندروید استودیو آموزش بدیم.اول اینکه خدمت شما عرض کنم که این آموزش رو از Linear Layout شروع می کنیم سپس دیزاین کلی برنامه رو درست می کنیم سپس می پردازیم به حافظه داخلی و فایل ها رو خدمتون آموزش میدیم.که چطور می توان در حافظه داخلی متن را ذخیره کرد و حتی با بسته شدن اپلیکیشن ما اطلاعات از بین نمی رود.

سوال  حافظه داخلی فایل ها چیست ؟ حافظه خود دستگاه موبایل  و یا هر نوع دیواسی رو حافظه داخلی می گویند.

فایل چیست ؟ همه ما روزانه با نوت پد ویندوز کارمی کنیم و در برخی موارد اطلاعاتی را نوشته و در جایی ذخیره می کنیم به این فایل نوت پد فایل گفته می شود.شما هم می توانید فایل را نوشته و ذخیره کنید در حافظه داخلی موبایل.

حافظه خارجی چیست ؟ معمولا حافظه خارجی را به اختصار رم یا sd card می شناسیم.

می خواهیم چی کار کنیم ؟ جواب : می خواهم اطلاعات را از کاربر دریافت کنیم و به روش فایل ذخیره کنیم.

ما اول Linear Layout رو خدمت شما عزیزان آموزش میدم که چطور میشه اصلا چند تا عنصر رو در کنار هم قرار بدیم و یا زیر هم قرار بدیم که معمولا برای زیر هم قرار دادن چند عنصر (دکمه و …) از اتربویت زیر استفاده می کنیم:

android:orientation="vertical">

و برای کنار هم قرار دادن از :

 android:orientation="horizontal"

 

پیشنهاد ویژه  : 

فیلم آموزشی : عکس گرفتن انتخاب برای والپیپر wallpaper اندورید استودیو

فیلم آموزشی : آموزش استفاده از اسکرول ویو ScrollView اندروید استودیو

 

اما سورس کد بخش xml دیزاین :

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.app.homeandroidir.linerlayout.MainActivity"
    android:orientation="vertical">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/txtview"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/edittext"/>


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:orientation="horizontal"
        android:gravity="center">

        <Button
            android:layout_width="150dp"
            android:layout_height="50dp"
            android:id="@+id/btnread"
            android:text="خواندن اطلاعات"/>
        <Button
            android:layout_width="150dp"
            android:layout_height="50dp"
             android:id="@+id/btnwire"
            android:text="نوشتن اطلاعات"/>

    </LinearLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:gravity="center"
        android:orientation="horizontal">

    </LinearLayout>


</LinearLayout>

سورس کد بالا تشکیل شده از یک Linear Layout که اتربیویت vertical براش ست شده است :

 android:orientation="vertical">

و هم چنین برای خواندن اطلاعات از یک Textview استفاده شده است :

 <TextView
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/txtview"/>

و برای گرفتن ورودی از کاربر و یا متن نوشته شده کاربر از یک Edittext استفاده کرده ایم :

 <EditText
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/edittext"/>

و دو تا دکمه در کنار هم ؟ اما چطور کافی ما Linearlayout روی برای هر دو دکمه در نظر بگیرم و براشون مقدار horizontal زیر را ست کنیم.

     android:orientation="horizontal"

و تصویر پس از نوشتن سورس کد xml :

 

نوشتن در فایل اندروید استودیو

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

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

package com.app.homeandroidir.linerlayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
     Button btnread,btnwirte;
     TextView textView;
     EditText editText;
    public static String filename="my";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        cast();
        btnwirte.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                String msg=editText.getText().toString();
                if ("".equals(msg))
                {
                    Toast.makeText(MainActivity.this, "لطفا اطلاعاتی جهت نوشتن وارد کنید.", Toast.LENGTH_SHORT).show();
                }
                try {
                    FileOutputStream Fops= openFileOutput(filename,MODE_PRIVATE);
                    Fops.write(msg.getBytes());
                    Fops.close();
                    Toast.makeText(MainActivity.this, "اطلاعات با موفقیت ذخیره شد.", Toast.LENGTH_SHORT).show();

                }
                catch (FileNotFoundException ex)
                {
                    ex.printStackTrace();
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }

            }
        });




    }


    void cast(){
        btnread = (Button) findViewById(R.id.btnread) ;
        btnwirte=(Button) findViewById(R.id.btnwire);
        textView= (TextView) findViewById(R.id.txtview);
        editText = (EditText) findViewById(R.id.edittext);
    }
}

توضیح سورس کد بالا :

اولین کار و برای شروع کد نویسی جاوا ! معرفی و عملیات کست کردن دکمه و Textview ها و …

  Button btnread,btnwirte;
     TextView textView;
     EditText editText;
    public static String filename="my";

سپس تابع زیر را می نویسیم و در متد onCreate فراخوانی می کنیم.

 void cast(){
        btnread = (Button) findViewById(R.id.btnread) ;
        btnwirte=(Button) findViewById(R.id.btnwire);
        textView= (TextView) findViewById(R.id.txtview);
        editText = (EditText) findViewById(R.id.edittext);
    }

و اما می رسیم به سورس کد دکمه btnwrite و یا نوشتن اطلاعات که ورودی را از کاربر دریافت می کنیم به کمک EditText و سپس توسط یک متغییر رشته ای بنام msg از کاربر دریافت می کنیم.

  String msg=editText.getText().toString();

و اما سورس کد آخر مربوط به نوشتن اطلاعات که متاسفانه توضیح فراخوانی داره و باید حتما جهت هرچه بهتر یادگیری فیلم آموزشی رو دانلود کنید.

try {
                    FileOutputStream Fops= openFileOutput(filename,MODE_PRIVATE);
                    Fops.write(msg.getBytes());
                    Fops.close();
                    Toast.makeText(MainActivity.this, "اطلاعات با موفقیت ذخیره شد.", Toast.LENGTH_SHORT).show();

                }
                catch (FileNotFoundException ex)
                {
                    ex.printStackTrace();
                }
                catch (IOException e)
                {
                    e.printStackTrace();
                }

 

خانه اندروید دانلود فیلم آموزشی  لطفا فیلم آموزشی رو هم ببنید برای توضیحات بیشتر :

homeandroid.ir  دانلود فیلم آموزشی نوشتن اطلاعات حافظه داخلی فایل ها اندروید استودیو FileOutputStream

حجم فیلم آموزشی   حجم فیلم : ۳۷ مگابایت

پسورد فایل   پسورد فایل فشرده : homeandroid.ir

خانه اندروید منبع آموزش : خانه اندروید

 

درباره نویسنده

جواد محمدی هستم بنیان‌گذار سایت خانه اندروید در خدمتون هستیم با آموزش و مفاهیم برنامه نویسی اندروید-نزدیک به 10 سال هست در حوزه برنامه نویسی فعالیت می کنم. مسلط به kotlin,java,flutter,php هستم . در خانه اندروید دانستی های خودم را در اختیار تمامی علاقمندان به برنامه نویسی قرار میدم.تشکر از اینکه خانه اندرورید رو دنبال می کنید.

قبل از ارسال دیدگاه

  • قبل از ارسال دیدگاه: لطفا دیدگاه خودتون رو فقط در مورد این مطلب بنویسید.سپاسگزارم.

    دیدگاه های طولانی نادیده گرفته می شوند لذا دیدگاه خودتان را در دو خط خلاصه کنید.

    دیدگاه های که شامل توهین یا متن توهین آمیز اصلا تایید نمی شود.

    به دیدگاه های بی نام و نشان که ایمیل فیک و نام فیک وارد می کنند پاسخ داده نمی شود

10 دیدگاه

  1. حسین گفت:

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

    • سلام و درود
      این آموزش قدیمی ست
      لازم هست در کانال تلگرامی آموزش جدید کار با فایل ها رو مشاهده بفرمایین.
      در کانال جستجو کنید کار با فایل کاتلین

  2. yasiiii گفت:

    بله از ۶ بالاتر تست کردم .. پرمیژن ها رو چک میکنم … ممنون

  3. yasiiii گفت:

    سلام ..
    ببخشید من از هر طریقی امتحان میکنم این ارور دارم چه وقتی روی شبیه ساز اجرا میگیرم چه وقتی روی گوشی خودم …
    java.io.filenotfoudexception : /storge/ … : open fiaild: ENOENT (NO SUCH FILE OR DIRECTORY )
    دیگه نمیدونم چیکار کنم 🙁

    • Admin گفت:

      سلام و احترام
      دقت بفرمایین اگر روی اندروید ورژن های بالاتر از ۶ تست می کنید باید حتما پرمیژن ران تایم رو بگیرن.
      و سپس دستورات رو پیاده سازی کنید.
      و اگر به غیر از اینصورت هست پیغام مربطه به معنی ناموجود بودن فایل در دایرکتوری مورد نظر هست.
      با احترام.

  4. حمید گفت:

    سلام سایتتون ویروسی شده، اگه رفعش نکنید چند وقت دیگه شاهد افت سایتتون خواهید بود.

    • Admin گفت:

      سلام دوست گرامی از لطفا و بزرگواری شما سپاسگزارم.
      موضوع رو بررسی کردم و متاسفانه ۷ ویروس پیدا شد.
      از شما صمیمانه سپاسگزارم بابت گزارشی که برای بنده ارسال کردین.
      لطفا مجددن بررسی و در صورتی که بازم مشکل برطرف نشده بود اطلاع بدین ممنونم موفق باشین.
      با تشکر از شما
      با احترام.

  5. امیر حسین گفت:

    سلام
    این فایل درکجا ذخیره میشه؟ اگر اسمشو بذارم file.txt یک فایل تکست ایجاد می کنه؟ چجوری میتونم فایلشو ببینم ؟
    مرسی

  6. عباس گفت:

    متشکرم