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

آموزش برنامه نویسی اندروید با اندروید استودیو (بخش پنجاه و هفتم: خواندن از فایل Text در دایرکتوری معین )

[vc_row][vc_column][vc_column_text]

در بخش قبلی در مورد چک کردن این که آیا فایلی با اسم و دایرکتوری داده شده، وجود دارد، صحبت کردیم.

دیدیم که با استفاده از یک مسیر دایرکتوری و نام یک فایل در حافظه ی خارجی می توان ، امکان وجود یا عدم وجود فایل را بررسی نمود.

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

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

[/vc_column_text][vc_column_text][/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

من یک پروژه در اندروید استودیو، به نام Read-File-Gsm ایجاد می کنم.

به سراغ قسمت جاوای برنامه رفته و کدهای زیر را برای خواندن از فایل text ، در قسمت MainActivity.java و در متد ()onCreate می نویسم.

[/vc_column_text][vc_column_text]
String fileName = "1.txt";
        String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
        String pathDir = baseDir + "/Android/";

        File myfile = new File(pathDir + File.separator + fileName);

        try {
            String contents = new Scanner(myfile).useDelimiter("\\A").next();
            Toast.makeText(getApplicationContext(),contents, Toast.LENGTH_SHORT).show();

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

شرح کد:

 
[/vc_column_text][vc_column_text]

فرض می کنیم فایلی به صورتی که در تصویر مشاهده می کنید وجود دارد.

[/vc_column_text][vc_column_text]

و محتویات آن به این شکل است:

[/vc_column_text][vc_column_text]پس مشخصات این فایل بدین صورت است:

      Name: 1.txt

/Directory: /Android

Content: Gsm Developers

[/vc_column_text][vc_column_text]

پس مثل بخش قبلی ، نام و دایرکتوری فایل را به صورت زیر در کدجاوای پروژه مشخص می کنیم:

String fileName = "1.txt";
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
String pathDir = baseDir + "/Android/";
[/vc_column_text][vc_column_text]

در مرحله ی بعدی یک شی به نام myfile از کلاس File می سازیم و با استفاده از مسیر دایرکتوری که به برنامه گفتیم و نام فایلی که می خواهیم آن را تعریف می کنیم.

File myfile = new File(pathDir + File.separator + fileName);
[/vc_column_text][vc_column_text]

در قسمت اول، pathDir یعنی مسیر دایرکتوری و در قسمت سوم، fileName یعنی همان نام فایل از ورودی های سازنده برای این شی می باشند.

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

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

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

String contents = new Scanner(myfile).useDelimiter("\\A").next();
[/vc_column_text][vc_column_text]

در قسمت بعدی که اختیاری است، با استفاده از پیغام Toast محتویات رشته که در واقع محتویات فایل Text است را به کاربر نمایش می دهیم.

Toast.makeText(getApplicationContext(),contents, Toast.LENGTH_SHORT).show();
[/vc_column_text][vc_column_text]

به دلیل آن که فایل ممکن است در حافظه موجود نباشد یا به هر دلیلی قابل خواندن نباشد، دو کد قبلی را در ساختار try-catch می نویسیم.

try {
       String contents = new Scanner(myfile).useDelimiter("\\A").next();
       Toast.makeText(getApplicationContext(),contents, Toast.LENGTH_SHORT).show();
        }
catch (FileNotFoundException e) {
       e.printStackTrace();
        }
[/vc_column_text][vc_column_text]

عدم رعایت این موضوع ، ممکن است منجر به خطای کامپایلر شود.

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

پروژه را Run می کنیم.

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_text_separator title=”کد کامل MainActivity.java” i_icon_fontawesome=”fa fa-android” i_color=”green” color=”purple” border_width=”3″ add_icon=”true”][vc_column_text]

package com.gsm_developers.read_file_gsm;

import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Toast;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        String fileName = "1.txt";
        String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
        String pathDir = baseDir + "/Android/";

        File myfile = new File(pathDir + File.separator + fileName);

        try {
            String contents = new Scanner(myfile).useDelimiter("\\A").next();
            Toast.makeText(getApplicationContext(),contents, Toast.LENGTH_SHORT).show();
        }
        catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }
}
[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_btn title=”بخش پنجاه و ششم: بررسی امکان وجود فایل در دایرکتوری معین” color=”green” i_icon_fontawesome=”fa fa-android” add_icon=”true” link=”url:http%3A%2F%2Fwww.gsm-developers.com%2Ffile-exists-android-studio|title:%D8%A8%D8%AE%D8%B4%20%D9%BE%D9%86%D8%AC%D8%A7%D9%87%20%D9%88%20%D8%B4%D8%B4%D9%85%3A%20%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C%20%D8%A7%D9%85%DA%A9%D8%A7%D9%86%20%D9%88%D8%AC%D9%88%D8%AF%20%D9%81%D8%A7%DB%8C%D9%84%20%D8%AF%D8%B1%20%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C%20%D9%85%D8%B9%DB%8C%D9%86||”][vc_btn title=”بخش پنجاه و هشتم: خواندن از انواع فایل در دایرکتوری معین” color=”green” i_icon_fontawesome=”fa fa-android” add_icon=”true” link=”url:http%3A%2F%2Fwww.gsm-developers.com%2Fread-from-file-android-studio%2F|title:%D8%A8%D8%AE%D8%B4%20%D9%BE%D9%86%D8%AC%D8%A7%D9%87%20%D9%88%20%D9%87%D8%B4%D8%AA%D9%85%3A%20%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86%20%D8%A7%D8%B2%20%D8%A7%D9%86%D9%88%D8%A7%D8%B9%20%D9%81%D8%A7%DB%8C%D9%84%20%D8%AF%D8%B1%20%D8%AF%D8%A7%DB%8C%D8%B1%DA%A9%D8%AA%D9%88%D8%B1%DB%8C%20%D9%85%D8%B9%DB%8C%D9%86||”][vc_btn title=”در صورت ارائه سوالات و مشکلات خود به انجمن اختصاصی اندروید مراجعه نمایید” style=”classic” color=”blue” link=”url:http%3A%2F%2Fforum.gsm-developers.com|title:%D8%AF%D8%B1%20%D8%B5%D9%88%D8%B1%D8%AA%20%D8%A7%D8%B1%D8%A7%D8%A6%D9%87%20%D8%B3%D9%88%D8%A7%D9%84%D8%A7%D8%AA%20%D9%88%20%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA%20%D8%AE%D9%88%D8%AF%20%D8%A8%D9%87%20%D8%A7%D9%86%D8%AC%D9%85%D9%86%20%D8%A7%D8%AE%D8%AA%D8%B5%D8%A7%D8%B5%DB%8C%20%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%20%D9%85%D8%B1%D8%A7%D8%AC%D8%B9%D9%87%20%D9%86%D9%85%D8%A7%DB%8C%DB%8C%D8%AF||”][/vc_column][/vc_row]

Arash

طراح سایت و برنامه نویس

یک دیدگاه

  1. خیلی ممنون بابت آموزش هاتون ،
    با حوصله و مفید هستند

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا