

- Trending Categories
Data Structure
Networking
RDBMS
Operating System
Java
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
How to make a txt file in external storage with runtime permission in android?
This example demonstrates How to make a txt file in external storage with runtime permission in android.
Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.
Step 2 − Add the following code to res/layout/activity_main.xml.
<?xml version = "1.0" encoding = "utf-8"?> <LinearLayout 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" tools:context = ".MainActivity" android:orientation = "vertical"> <EditText android:id = "@+id/enterText" android:hint = "Please enter text here" android:layout_width = "match_parent" android:layout_height = "wrap_content" /> <Button android:id = "@+id/save" android:text = "Save" android:layout_width = "wrap_content" android:layout_height = "wrap_content" /> </LinearLayout>
In the above code, we have taken edit text and button. When user click on button, it will take data from edit text and store in external storage.
Step 3 − Add the following code to src/MainActivity.java
package com.example.andy.myapplication; import android.content.pm.PackageManager; import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; public class MainActivity extends AppCompatActivity { private static final int PERMISSION_REQUEST_CODE = 100; Button save; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final EditText enterText = findViewById(R.id.enterText); save = findViewById(R.id.save); save.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (!enterText.getText().toString().isEmpty()) { String state = Environment.getExternalStorageState(); if (Environment.MEDIA_MOUNTED.equals(state)) { if (Build.VERSION.SDK_INT > = 23) { if (checkPermission()) { File sdcard = Environment.getExternalStorageDirectory(); File dir = new File(sdcard.getAbsolutePath() + "/text/"); dir.mkdir(); File file = new File(dir, "sample.txt"); FileOutputStream os = null; try { os = new FileOutputStream(file); os.write(enterText.getText().toString().getBytes()); os.close(); } catch (IOException e) { e.printStackTrace(); } } else { requestPermission(); // Code for permission } } else { File sdcard = Environment.getExternalStorageDirectory(); File dir = new File(sdcard.getAbsolutePath() + "/text/"); dir.mkdir(); File file = new File(dir, "sample.txt"); FileOutputStream os = null; try { os = new FileOutputStream(file); os.write(enterText.getText().toString().getBytes()); os.close(); } catch (IOException e) { e.printStackTrace(); } } } } } }); } private boolean checkPermission() { int result = ContextCompat.checkSelfPermission(MainActivity.this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE); if (result = = PackageManager.PERMISSION_GRANTED) { return true; } else { return false; } } private void requestPermission() { if (ActivityCompat.shouldShowRequestPermissionRationale(MainActivity.this, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) { Toast.makeText(MainActivity.this, "Write External Storage permission allows us to create files. Please allow this permission in App Settings.", Toast.LENGTH_LONG).show(); } else { ActivityCompat.requestPermissions(MainActivity.this, new String[]{android.Manifest.permission.WRITE_EXTERNAL_STORAGE}, PERMISSION_REQUEST_CODE); } } @Override public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) { switch (requestCode) { case PERMISSION_REQUEST_CODE: if (grantResults.length > 0 && grantResults[0] = = PackageManager.PERMISSION_GRANTED) { Log.e("value", "Permission Granted, Now you can use local drive ."); } else { Log.e("value", "Permission Denied, You cannot use local drive ."); } break; } } }
Step 4 − Add the following code to manifest.xml
<?xml version = "1.0" encoding = "utf-8"?> <manifest xmlns:android = "http://schemas.android.com/apk/res/android" package = "com.example.andy.myapplication"> <uses-permission android:name = "android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name = "android.permission.READ_EXTERNAL_STORAGE"/> <application android:allowBackup = "true" android:icon = "@mipmap/ic_launcher" android:label = "@string/app_name" android:roundIcon = "@mipmap/ic_launcher_round" android:supportsRtl = "true" android:theme = "@style/AppTheme"> <activity android:name = ".MainActivity"> <intent-filter> <action android:name = "android.intent.action.MAIN" /> <category android:name = "android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Let's try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from android studio, open one of your project's activity files and click Run icon from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen −
In the above result, we have added some text and clicked on save button as shown below –
At first time, it will ask runtime permission to access external storage. To verify the above result, open your external storage and check for text folder as shown below -
Click here to download the project code
- Related Questions & Answers
- How to read a txt file in external storage with runtime permission in android?
- How to read an image file in external storage with runtime permission in android?
- How to write an image file in external storage with runtime permission in android?
- How to make a txt file and read txt file from internal storage in android?
- How to make a txt file in internal storage in android?
- How to list files from SD card with runtime permission in android?
- How to store list in a txt file and read list from txt file in android?
- How to read a .txt file with RandomAccessFile in Java?
- How to request Location Permission at runtime on iOS
- How to request Location Permission at runtime on Kotlin?
- How to read an image file in internal storage in android?
- How to write an image file in internal storage in android?
- How to delete a string inside a file(.txt) in java?
- How to overwrite a line in a .txt file using Java?
- How to write JavaScript in an External File?