Showing posts with label e14.1.4. Show all posts
Showing posts with label e14.1.4. Show all posts
External Storage Public Directory

External Storage Public Directory

MainActivity.java
public class MainActivity extends AppCompatActivity {
  private static final int PERMISION_WRITE_EXTERNAL_STORAGE = 123;
  String FileName = "myFile";
  Button BtnSave, BtnRead;
  EditText editName;
  TextView readName;
  String name;
  @Override 
   protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.activity_main);
   BtnSave = (Button) findViewById(R.id.idBtnSave);
   BtnSave.setOnClickListener(new View.OnClickListener() {
   @Override 
    public void onClick(View v) {
     int permissionCheck = ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.WRITE_EXTERNAL_STORAGE);
    
    if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
      saveFile();
    } else {
      ActivityCompat.requestPermissions(MainActivity.this, new String[] {
      android.Manifest.permission.WRITE_EXTERNAL_STORAGE
     }, PERMISION_WRITE_EXTERNAL_STORAGE);
    }
   }
  });
   BtnRead = (Button) findViewById(R.id.idBtnRead);
   BtnRead.setOnClickListener(new View.OnClickListener() {
    @Override 
     public void onClick(View v) {
     readFile();
   }
  });
   editName = (EditText) findViewById(R.id.idName);
   readName = (TextView) findViewById(R.id.idReadtxt);
 }
  @Override 
  public void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults) {
  
  switch (requestCode) {
   
   case PERMISION_WRITE_EXTERNAL_STORAGE:
    {
      //premission to read storage 
     
     if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
       saveFile();
      
     } else {
       Toast.makeText(MainActivity.this, "Please grant Permission to Save File", Toast.LENGTH_SHORT).show();
      
     }
     return;
    }
  }
 }
  private void readFile() {
  
  try {
    //To Read the File in a Directory called MyData in the Downloads Folder ... 
    //UnComment and Replace the Code 
   
   /* File myDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/MyData"); 
      myDir.mkdirs(); 
      File file = new File(myDir,FileName);*/
    //To Read the File directly in Downloads 
    File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), FileName);
    //Below Code will remain the same
    FileInputStream fin = new FileInputStream(file);
    InputStreamReader inputStream = new InputStreamReader(fin);
    BufferedReader bufferedReader = new BufferedReader(inputStream);
    StringBuilder stringBuilder = new StringBuilder();
    String line = null;
   
   while ((line = bufferedReader.readLine()) != null) {
     stringBuilder.append(line);
   }
    fin.close();
    inputStream.close();
    readName.setText("Name: " + stringBuilder.toString());
    Toast.makeText(this, "Data Retrieved :" + stringBuilder.toString(), Toast.LENGTH_SHORT).show();
   } catch (java.io.IOException e) {
    e.printStackTrace();
   
  }
 }
 private void saveFile() {
  
  try {
    //To Save the File in a Directory called MyData in the Downloads Folder... 
    //UnComment and Replace the Code 
    /* File myDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS) + "/MyData"); 91 myDir.mkdirs(); 92 File file = new File(myDir,FileName);*/ 93​ 94 //To Save the File directly in Downloads 
    File file = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS), FileName);
    //Below Code will remain the same 
    FileOutputStream fos = new FileOutputStream(file);
    name = editName.getText().toString();
    fos.write(name.getBytes());
    fos.close();
    Toast.makeText(this, "Data Saved", Toast.LENGTH_SHORT).show();
   
  } catch (java.io.IOException e) {
    e.printStackTrace();
  }
 }
}


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:id="@+id/activity_main" 
     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" 
     android:orientation="vertical" 
     tools:context="com.example.arjun.storage.MainActivity">
    
    <EditText 
     android:layout_width="match_parent"
     android:layout_height="wrap_content" 
     android:inputType="textPersonName" 
     android:hint="Name:" 
     android:ems="10" 
     android:id="@+id/idName" />  
    
    <LinearLayout 
     android:layout_width="match_parent"
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 
    
        <Button 
         android:text="Save To File"
         android:layout_width="match_parent" 
         android:layout_height="wrap_content"
         android:layout_weight="1" 
         android:layout_margin="5dp" 
         android:id="@+id/idBtnSave" />  
        
        <Button 
         android:text="Read File" 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content" 
         android:layout_weight="1" 
         android:layout_margin="5dp" 
         android:id="@+id/idBtnRead" /> 
    </LinearLayout> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"
     android:textSize="20sp" 
     android:textColor="#000000" 
     android:id="@+id/idReadtxt"/> 
</LinearLayout>  

Menifest.xml
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />  
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />