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
- Android : Execute some code after back button is pressed
- Android is starting optimizing... app 1 of 1
- How to change Android Button Color using xml attribute and programatically using java
- SQLite with Android Easy to Understand Tutorial that covers Select, Insert, Update and Delete
- How to make Android EditText not editable
- Make Android TextView Clickable like Buttons
- Unable to establish connection to adb : Android Studio Error
- Android Constant and Resource Type Mismatches Lint
- Android Shared Preferences API tutorial
- Fixing Android unknown error 961 while downloading app
- DDMS files not found hprof-conv.exe
- How to reset eclipse layout
- Android Developers Bluetooth Tutorial
- Android Studio Native typeface cannot be made error
- 21 Useful Android Emulator Short-cut Keyboard Keys
- Multiline EditText in Android Example
- How to screenshot on Android?
- JavaScript : redirect page to other url
- Unable to load VM from snapshot. The snapshot has been saved for a different hardware configuration
- How To Disable Landscape Mode in Android Application
- Change Title text for Android Activity using java code
- Android : Class file collision: A resource exists with a different case
- Android Emulator Soft Back button action using Computer keyboard
- Device not compatible error Android Google Play Store
- ERROR x86 emulation currently requires hardware acceleration. Intel HAXM is not installed on this machine
- java.lang.NoClassDefFoundError android.support.v4.content.LocalBroadcastManager
- Disable Fading Edges Scroll Effect Android Views
- Android : Unable to load VM from snapshot : Mac OS X Error
- Change Android EditText Cursor Height
- What is Android Toast.LENGTH_SHORT and Toast. LENGTH_LONG durations
- How to add border to Android TextView
- Remove ActionBar from Activity that extends appcompat-v7
- How to send SMS on Android Emulator
- Android RatingBar Example
- This Toast was not created with Toast.makeText() : Android RuntimeException
- Android Studio Ctrl Shift o auto import not working
- Android : Duplicate registration for activity com.example.abc
- ADT Installation Error: requires plug-in org.eclipse.wst.sse.ui
- Running Android Lint has encountered a problem NullPointerException Error
- Android Emulator] ##KBD: Full queue, lose event Error Logs
- Export aborted because fatal lint error were found
- Android Parsing Data for android-L failed Unsupported major.minor version 51.0 Error
- Android : Accidental Octal Lint Warning
- Android ListView turns Black or Flickers while Scrolling
- How to make a dummy phone call from Android Emulator device
- Force android app to run in Landscape mode programatically - Android
- Type R is already defined error : Android Error - Android
- Call PHP function on Button click using jquery ajax - PHP
- Can't Run SDK Manager find_java.bat issue - Android
- 10 FTP SFTP Clients and Alternatives - FTP
- auth_client_using_bad_version_title : Error Android Lint - Android
- Delete file using PHP code : unlink() - PHP
- Stop android adb service from command prompt or terminal - Android
- How to add Date and Time to Windows Notepad File - NotepadPlusPlus
- Mac OS X Taking Screen Capture using Terminal - Mac-OS-X
- Create SharePoint Site Collection using PowerShell New-SPSite - SharePoint
- SharePoint workflow Canceled - Coercion Failed: Unable to transform the input lookup data into the requested type - SharePoint
- Android : Prevent App for rotation landscape or portrait - Android
- MySQL 1005 Error : SQLSTATE: HY000 (ER_CANT_CREATE_TABLE) Message: Can't create table '%s' (errno: 150) - MySQL
- How to change Android EditText Cursor Color - Android