Android Tutorial

Software Setup and Configuration

Android Studio

File Structure

Components

Core Topics

Layout

View

Button

Intent and Intent Filters

Toast

RecyclerView

Fragments

Adapters

Other UI Component

Image Loading Libraries

Date and Time

Material Design

Bars

Working with Google Maps

Chart

Animation

Database

Advance Android

Jetpack

Architecture

App Publish

App Monetization

Internal Storage in Android with Example

Internal storage in Android refers to the private file storage system where files are saved in a manner inaccessible to other apps and to the user (when the device is not rooted). Each app has its dedicated space in internal storage, and this is useful for saving sensitive or private data that shouldn't be exposed to other apps.

Here's an example of how you can write to and read from internal storage in an Android app:

1. Writing to Internal Storage:

Suppose you want to save a simple text file named "myfile.txt".

private fun writeFileToInternalStorage(data: String) {
    val filename = "myfile.txt"
    openFileOutput(filename, Context.MODE_PRIVATE).use {
        it.write(data.toByteArray())
    }
}

In the above method:

  • openFileOutput() is a method of the Context class that lets you write to a file in internal storage.
  • MODE_PRIVATE is the file creation mode: when set, the file can only be accessed by the calling application.

2. Reading from Internal Storage:

To read the previously saved file:

private fun readFileFromInternalStorage(): String {
    val filename = "myfile.txt"
    return openFileInput(filename).bufferedReader().use {
        it.readText()
    }
}

In this method:

  • openFileInput() is a method of the Context class that lets you read a file from internal storage.

3. Example Usage:

class MainActivity : AppCompatActivity() {
    
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        // Writing to internal storage
        writeFileToInternalStorage("Hello, Android!")

        // Reading from internal storage
        val data = readFileFromInternalStorage()
        Log.d("InternalStorageExample", "Read from storage: $data")
    }
    
    private fun writeFileToInternalStorage(data: String) {
        // ... same as above ...
    }

    private fun readFileFromInternalStorage(): String {
        // ... same as above ...
    }
}

Notes:

  • The internal storage is not meant for large files or media as space might be limited. For large files, consider using external storage or a database.
  • Files written to internal storage are automatically removed when the user uninstalls your app.
  • If you want to store key-value pairs, consider using SharedPreferences instead.

Always remember to handle IO operations with care. Consider running them on a background thread (e.g., using AsyncTask, Coroutines, etc.) to ensure that the UI remains responsive.

  1. How to use internal storage in Android with example:

    Internal storage in Android is a private storage space for an app. You can use it to store sensitive data that shouldn't be accessible to other apps. Here's an example of using internal storage to save and retrieve data:

    // Save data to internal storage
    val data = "Hello, Internal Storage!"
    val fileOutputStream: FileOutputStream = openFileOutput("example.txt", Context.MODE_PRIVATE)
    fileOutputStream.write(data.toByteArray())
    fileOutputStream.close()
    
    // Retrieve data from internal storage
    val fileInputStream: FileInputStream = openFileInput("example.txt")
    val buffer = ByteArray(fileInputStream.available())
    fileInputStream.read(buffer)
    val retrievedData = String(buffer)
    fileInputStream.close()
    
  2. Android internal storage vs external storage comparison:

    Internal storage is private to the app, accessible only by the app itself. It's ideal for storing sensitive data. External storage, on the other hand, is shared and can be accessed by other apps, making it suitable for files that need to be shared between apps or stored publicly.

    // Internal storage example
    val internalFile: File = File(filesDir, "internal.txt")
    
    // External storage example
    val externalFile: File = File(getExternalFilesDir(null), "external.txt")
    

    Consider the security and sharing requirements of your data when choosing between internal and external storage.