The following code shows how to Write and read file in External Storage Directory.
Register permission for WRITE_EXTERNAL_STORAGE
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.java2s.myapplication3.app" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="java2s.com" android:theme="@style/AppTheme" > <activity android:name="com.java2s.myapplication3.app.MainActivity" android:label="java2s.com" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Main activity Java code
package com.java2s.myapplication3.app; // w w w . ja v a 2 s. co m import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.app.Activity; import android.os.Bundle; import android.os.Environment; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends Activity { private static final String FILENAME = "data.txt"; private static final String DNAME = "myfiles"; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); TextView tv = new TextView(this); setContentView(tv); File rootPath = new File(Environment.getExternalStorageDirectory(), DNAME); if(!rootPath.exists()) { rootPath.mkdirs(); } File dataFile = new File(rootPath, FILENAME); if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) { Toast.makeText(this, "Cannot use storage.", Toast.LENGTH_SHORT).show(); finish(); return; } try { FileOutputStream mOutput = new FileOutputStream(dataFile, false); String data = "THIS DATA WRITTEN TO A FILE"; mOutput.write(data.getBytes()); mOutput.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } //Read the created file and display to the screen try { FileInputStream mInput = new FileInputStream(dataFile); byte[] data = new byte[128]; mInput.read(data); mInput.close(); String display = new String(data); tv.setText(display.trim()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } dataFile.delete(); } }