package skytv_com.banking.enjoymovie; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.OutputStreamWriter; import java.io.Serializable; import android.content.Context; import android.util.Base64InputStream; import android.util.Base64OutputStream; import android.util.Log; public class ObjectStreamUtil { /** * Take an object and serialize and then save it to preferences * */ private final static String TAG = "SerializeObject"; /** * Create a String from the Object using Base64 encoding * @param object - any Object that is Serializable * @return - Base64 encoded string. */ public static String objectToString(Object object) {//Serializable ByteArrayOutputStream out = new ByteArrayOutputStream(); //Log.e("objectToString","****** reach"); try { new ObjectOutputStream(out).writeObject(object); byte[] data = out.toByteArray(); //Log.e("objectToString","******"+new String(data)); out.close(); out = new ByteArrayOutputStream(); Base64OutputStream b64 = new Base64OutputStream(out,0); b64.write(data); b64.close(); out.close(); return new String(out.toByteArray()); } catch (IOException e) { e.printStackTrace(); } return null; } /** * Creates a generic object that needs to be cast to its proper object * from a Base64 ecoded string. * * @param encodedObject * @return */ public static Object stringToObject(String encodedObject) { try { return new ObjectInputStream(new Base64InputStream( new ByteArrayInputStream(encodedObject.getBytes()), 0)).readObject(); } catch (Exception e) { e.printStackTrace(); } return null; } /** * Save serialized settings to a file * @param context * @param data */ public static void WriteSettings(Context context, String data, String filename){ FileOutputStream fOut = null; OutputStreamWriter osw = null; try{ fOut = context.openFileOutput(filename, Context.MODE_PRIVATE); osw = new OutputStreamWriter(fOut); osw.write(data); osw.flush(); //Toast.makeText(context, "Settings saved",Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); // Toast.makeText(context, "Settings not saved",Toast.LENGTH_SHORT).show(); } finally { try { if(osw!=null) osw.close(); if (fOut != null) fOut.close(); } catch (IOException e) { e.printStackTrace(); } } } public static void WriteSettings(Context context, String data, File file){ OutputStreamWriter osw = null; FileOutputStream fOut = null; try{ fOut = new FileOutputStream(file); osw = new OutputStreamWriter(fOut); osw.write(data); osw.flush(); //Toast.makeText(context, "Settings saved",Toast.LENGTH_SHORT).show(); } catch (Exception e) { e.printStackTrace(); // Toast.makeText(context, "Settings not saved",Toast.LENGTH_SHORT).show(); } finally { try { if(osw!=null) osw.close(); if (fOut != null) fOut.close(); } catch (IOException e) { e.printStackTrace(); } } } public static String ReadSettings(Context context, File filename){ StringBuffer dataBuffer = new StringBuffer(); try{ FileInputStream fileInputStream = new FileInputStream(filename); // if file the available for reading if (fileInputStream != null) { // prepare the file for reading InputStreamReader inputreader = new InputStreamReader(fileInputStream); BufferedReader buffreader = new BufferedReader(inputreader); String newLine; // read every line of the file into the line-variable, on line at the time while (( newLine = buffreader.readLine()) != null) { // do something with the settings from the file dataBuffer.append(newLine); } // close the file again fileInputStream.close(); } } catch (java.io.FileNotFoundException f) { // do something if the myfilename.txt does not exits /* Log.e(TAG, "FileNot Found in ReadSettings filename = " + filename); try { context.openFileOutput(filename, Context.MODE_PRIVATE); } catch (FileNotFoundException e) { e.printStackTrace(); }*/ } catch (IOException e) { Log.e(TAG, "IO Error in ReadSettings filename = " + filename); } return dataBuffer.toString(); } /** * Read data from file and put it into a string * @param context * @param filename - fully qualified string name * @return */ public static String ReadSettings(Context context, String filename){ StringBuffer dataBuffer = new StringBuffer(); try{ // open the file for reading InputStream instream = context.openFileInput(filename); // if file the available for reading if (instream != null) { // prepare the file for reading InputStreamReader inputreader = new InputStreamReader(instream); BufferedReader buffreader = new BufferedReader(inputreader); String newLine; // read every line of the file into the line-variable, on line at the time while (( newLine = buffreader.readLine()) != null) { // do something with the settings from the file dataBuffer.append(newLine); } // close the file again instream.close(); } } catch (java.io.FileNotFoundException f) { // do something if the myfilename.txt does not exits Log.e(TAG, "FileNot Found in ReadSettings filename = " + filename); try { context.openFileOutput(filename, Context.MODE_PRIVATE); } catch (FileNotFoundException e) { e.printStackTrace(); } } catch (IOException e) { Log.e(TAG, "IO Error in ReadSettings filename = " + filename); } return dataBuffer.toString(); } }