Note that there are some explanatory texts on larger screens.

plurals
  1. POSerializing objects into files in android
    text
    copied!<p>Write now I have this class that I would like to be able to save and open using serialization: </p> <pre><code>public class Region implements Serializable { private final int inputNumberOfColumnsAlongXAxis; private final int inputNumberOfColumnsAlongYAxis; private double inputDataScaleReductionOnXAxis; private double inputDataScaleReductionOnYAxis; private int numberOfColumnsAlongXAxis; private int numberOfColumnsAlongYAxis; private int cellsPerColumn; // Z-Axis dimension private float inhibitionRadius; private final float percentMinimumOverlapScore; private final float minimumOverlapScore; // ---------------------------------------------------------- /** * Save the current Region object on the view into a file named * "TrainedRegion". */ public static byte[] serializeObject(Object region) { // TODO: save with current timestamp and use open pop-up // String timeStamp = "" + System.currentTimeMillis() / 1000; // String fileName = ("Region created at timestamp(seconds): " + // timeStamp); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { ObjectOutput objectOutput = new ObjectOutputStream(baos); objectOutput.writeObject(region); objectOutput.close(); // Get the bytes of the serialized object byte[] bytesOfSerializedObject = baos.toByteArray(); return bytesOfSerializedObject; } catch(IOException ioe) { Log.e("serializeObject", "error", ioe); return null; } } // ---------------------------------------------------------- /** * Returns a previously saved Region object with the given name. * * @param fileName * @return A previously saved Region object. */ public static Object deserializeObject(byte[] bytes) { // TODO: later read Region object saved in file named by the time stamp during // saving. // ObjectInputStream inputStream = new ObjectInputStream(new // FileInputStream(fileName)); try { ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(bytes)); Object object = in.readObject(); in.close(); return object; } catch(ClassNotFoundException cnfe) { Log.e("deserializeObject", "class not found error", cnfe); return null; } catch(IOException ioe) { Log.e("deserializeObject", "io error", ioe); return null; } } } </code></pre> <p>The following is in my "screen" class that acts as the controller for my model above and my view(the screen): </p> <pre><code>// ---------------------------------------------------------- /** * I want to be able to open a Region instance that was saved. */ public void openClicked() { // open the file created below in save method and write all the bytes into // the global region instance for this class. How can do this? this.region = (Region) this.region.deserializeObject(savedRegionInBytes); } // ---------------------------------------------------------- /** * */ public void saveClicked() { this.savedRegionInBytes = this.region.serializeObject(this.region); // TODO: write savedRegionInBytes to a file. How can I do this? } </code></pre> <p>Also if there is a easier way to serialize objects into files in android I would love to hear it. Thanks!</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload