Mega Code Archive

 
Categories / Android / File
 

Read Write File Manager

//package com.application.esmaker.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; import android.content.Context; import android.util.Log; import android.widget.Toast; public class ReadWriteFileManager {   public void start(Context cx) {     final String TEMP_FILE_NAME = "temp.txt";     String contentToWrite = "THIS IS THE CONTENT TO WRITE!";     Log.d("DEBUG", "Instantiating ReadWriteManager..");     ReadWriteFileManager readWriteFileManager = new ReadWriteFileManager();     Log.d("DEBUG", "Writing to file...");     readWriteFileManager.writeToFile(cx, contentToWrite.getBytes(),         TEMP_FILE_NAME);     Log.d("DEBUG", "Reading from file..");     String contentRead = readWriteFileManager.readFromFile(cx,         TEMP_FILE_NAME);     Log.d("DEBUG", "Content read: " + contentRead);     Toast.makeText(cx, contentRead, Toast.LENGTH_LONG).show();   }   public String readFromFile(Context context, String sourceFileName) {     /*      * Reading will be file type specific.. Here I'm considering text file      * alone..      */     FileInputStream fis = null;     InputStreamReader isr = null;     char[] inputBuffer = null;     String file_content = null;     try {       // As this requires full path of the file...       // i.e data/data/package_name/files/your_file_name       File sourceFile = new File(context.getFilesDir().getPath()           + File.separator + sourceFileName);       if (sourceFile.exists()) {         // Probably you will get an exception if its         // a huge content file..         // I suggest you to handle content here         // itself, instead of         // returning it as return value..         inputBuffer = new char[(int) sourceFile.length()];         fis = context.openFileInput(sourceFileName);         isr = new InputStreamReader(fis);         isr.read(inputBuffer);         file_content = new String(inputBuffer);         try {           isr.close();           fis.close();         } catch (IOException e) {           e.printStackTrace();         }       }     } catch (Exception e) {       e.printStackTrace();       file_content = null;     }     return file_content;   }   public boolean writeToFile(Context context, byte[] contentToWrite,       String destinationFileName) {     FileOutputStream fos = null;     boolean retValue = false;     try {       // Note that your file will be created and stored       // under the path: data/data/your_app_package_name/files/       fos = context.openFileOutput(destinationFileName,           Context.MODE_PRIVATE);       // Note that we are not buffering of contents to write..       // So, this will work best for files with less content....       fos.write(contentToWrite);       // Successfully completed writing..       retValue = true;       try {         fos.flush();         fos.close();       } catch (IOException e) {         e.printStackTrace();       }     } catch (Exception e) {       // You can catch exceptions specifically for low mem,       // file cant be created, and so on..       e.printStackTrace();       // Failed to write..       retValue = false;     }     return retValue;   } }