To read a text file from SD Card (External Memory) in Android one has to make use of Environment.getExternalStorageDirectory() to get access to the external Storage. We make use of the File Class from java.io package as we usually use.
Example :We will create an Android Project with an Activity that has a Button and TextView. When the button is clicked we will read a text file from the SD card location "/Dir/data.txt" and display the data from the file to the TextView.
Note : Do not forget to place the text file in External Storage /Dir/data.txt. Also do not forget to add user permission : <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> in AndroidManifest.xml file.
File : activity_main.xml<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
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.code2care.readtextfile.MainActivity" >
<TextView
android:id="@+id/text_file_data"
android:layout_width="fill_parent"
android:layout_height="200dp"
android:layout_alignParentRight="true"
android:padding="10dp"
android:text="@string/text_file_data" />
<Button
android:id="@+id/read_text_file"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="127dp"
android:onClick="getTextFile"
android:text="@string/btn" />
</RelativeLayout>
File : strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">ReadTextFile</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="text_file_data"></string>
<string name="btn">Open Text File</string>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">ReadTextFile</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="text_file_data"></string>
<string name="btn">Open Text File</string>
</resources>
package com.code2care.readtextfile;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import android.os.Bundle;
import android.os.Environment;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends ActionBarActivity {
TextView dispText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
dispText = (TextView) findViewById(R.id.text_file_data);
}
public void getTextFile(View v) {
// You can provide the dir location from SD card root
String data = getTextFileData("/Dir/data.txt");
// Display the text conetents on a TextView
dispText.setText(data);
}
public String getTextFileData(String fileName) {
// Get the dir of SD Card
File sdCardDir = Environment.getExternalStorageDirectory();
// Get The Text file
File txtFile = new File(sdCardDir, fileName);
// Read the file Contents in a StringBuilder Object
StringBuilder text = new StringBuilder();
try {
BufferedReader reader = new BufferedReader(new FileReader(txtFile));
String line;
while ((line = reader.readLine()) != null) {
text.append(line + '\n');
}
reader.close();
} catch (IOException e) {
Log.e("C2c", "Error occured while reading text file!!");
}
return text.toString();
}
}
Output :


If you are testing this Scenario on Emulator device, do not forget to create an SD Card with some memory while creating the Emulator from Android Virtual Device Manager.
Related Questions :How to read a file from Android External Storage ?
How to get a text from Android SD Card ?
How to display text in TextView from a file read from SD Card?
HashTags : #Android #AndroidTutorial #SDCard #FileOperations #SecondaryStorage #FileRead
- Check Internet Connection WIFI 4G is active on Android Programmatically
- Android Emulator cannot be opened because the developer cannot be verified. [M1 Mac]
- How to Change Android Toast Position?
- Fail to connect to camera service Android java RuntimeException
- How to create Custom RatingBar Android Programming Tutorial
- Fixing Android unknown error 961 while downloading app
- Android AlertDialog with Yes No and Cancel Button
- Share or Send SMS via Android Intent
- The Android Virtual Device myEmulator is currently running an emulator and cannot be deleted.
- Pass data between two Android Activities and access it using Intent
- SQLite with Android Easy to Understand Tutorial that covers Select, Insert, Update and Delete
- [FIX] AndroidRuntime: FATAL EXCEPTION: main - java.lang.RuntimeException NullPointerException
- Android EditText Cursor Colour appears to be white
- Android Development - How to switch between two Activities
- Android xml error Attribute is missing the Android namespace prefix [Solution]
- Android : Remove ListView Separator/divider programmatically or using xml property
- Android is starting optimizing... app 1 of 1
- java.lang.NoClassDefFoundError android.support.v4.content.LocalBroadcastManager
- AlertDialog with single button example : Android
- Android : Exception raised during rendering: action_bar API 22
- Maven : java.lang.ClassNotFoundException: Xmx512m
- Android Lint app_name is not translated in af (Afrikaans) am (Amharic) ar (Arabic) bg (Bulgarian)
- Center align text in TextView Android Programming
- How to Download and Install Android adb Tool on Linux, Mac or Windows
- Multiline EditText in Android Example
- How to remove username from Mac Menu Bar? - MacOS
- Setting JAVA_HOME in macOS Big Sur - MacOS
- TextEdit Get the count of lines in a file - MacOS
- Fix: Microsoft Teams Error Code 2:- 1200 - Teams
- Make Android View Scrollable both Horizontally and Vertically - Android
- Fix Microsoft Teams Error code - 107 - Teams
- How to run Java Unit Test cases with Apache Maven? - Java
- Spring 5 IoC Example with application Context XML (ClassPathXmlApplicationContext) and Gradle. - Java