Android read text file from internal storage

In the previous post we have seen how to read files from external storage (SD Card), now let's see how we can read the contents from a text file stored in Internal Storage.

File : MainActivity.java
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;

import android.os.Bundle;
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) {


		String data = getTextFileData("data.txt");

	
		dispText.setText(data);

	}

	public String getTextFileData(String fileName) {
		
		StringBuilder text = new StringBuilder();
		
		
		try {

		
		 FileInputStream fIS = getApplicationContext().openFileInput(fileName);
		 InputStreamReader isr = new InputStreamReader(fIS, "UTF-8");
         BufferedReader br = new BufferedReader(isr);

			String line;

			while ((line = br.readLine()) != null) {
				text.append(line + '\n');
			}
			br.close();
		} catch (IOException e) {
			Log.e("Error!", "Error occurred while reading text file from Internal Storage!");

		}

		return text.toString();

	}
}
File : layout.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>

This is not an AI-generated article but is demonstrated by a human on an M1 Mac running macOS Sonoma 14.0.

Please support independent contributors like Code2care by donating a coffee.

Buy me a coffee!

Buy Code2care a Coffee!

Comments & Discussion

Facing issues? Have questions? Post them here! We're happy to help!