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
- Increase Android Emulator Timeout time
- Android : Remove ListView Separator/divider programmatically or using xml property
- Error : Invalid key hash.The key hash does not match any stored key hashes
- How to Change Android Toast Position?
- Android Alert Dialog with Checkboxes example
- Android : No Launcher activity found! Error
- Android Development: Spinners with Example
- Failed to sync Gradle project Error:failed to find target android-23
- INSTALL_FAILED_INSUFFICIENT_STORAGE Android Error
- Disable Fading Edges Scroll Effect Android Views
- How to create Toast messages in Android?
- Channel 50 SMSes received every few minutes Android Phones
- Android xml error Attribute is missing the Android namespace prefix [Solution]
- Create Custom Android AlertDialog
- How To Disable Landscape Mode in Android Application
- Android Development - How to switch between two Activities
- incorrect line ending: found carriage return (\r) without corresponding newline (\n)
- Generate Facebook Android SDK keyhash using java code
- Android Error Generating Final Archive - Debug Certificate Expired
- 21 Useful Android Emulator Short-cut Keyboard Keys
- Android RatingBar Example
- 11 Weeks of Android Online Sessions-15-Jun-to-28-Aug-2020
- Download interrupted: Unknown Host dl-ssl.google.com Error Android SDK Manager
- fill_parent vs match_parent vs wrap_content
- Android : Connection with adb was interrupted 0 attempts have been made to reconnect
- Android Emulator cannot be opened because the developer cannot be verified. [M1 Mac] - Android
- Screen Mirroring iPhone to TV - iOS
- MySQL: How to Select Database via Terminal/Command Line - MySQL
- How to see storage usage details on OneDrive on Mac? - Windows
- How to install pip on macOS using terminal command [Python] - Python
- 3 Ways to Change Default 8080 Port in Spring Boot - Java
- How to Recover Deleted Messages on iPhone - iOS
- How to check your IP using bash for Windows? - Bash