Changed motorIO from files to streams
authorBill Kuker <bkuker@billkuker.com>
Sat, 6 Nov 2010 19:13:36 +0000 (19:13 +0000)
committerBill Kuker <bkuker@billkuker.com>
Sat, 6 Nov 2010 19:13:36 +0000 (19:13 +0000)
MotorIOTest.xml
gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorWorkbench.java
src/com/billkuker/rocketry/motorsim/io/MotorIO.java
test/com/billkuker/rocketry/motorsim/test/MotorIOTest.java

index deca6d57029a430408eda93a153d3d7e04262780..52d462d4804275b360f8bf7403500800325f1254 100644 (file)
@@ -5,7 +5,13 @@
       <OD>31 mm</OD>
       <length>200 mm</length>
     </chamber>
-    <fuel class="com.billkuker.rocketry.motorsim.fuel.KNSU"/>
+    <fuel class="com.billkuker.rocketry.motorsim.fuel.KNSU" serialization="custom">
+      <java.net.URI>
+        <default>
+          <string>motorsim:KNSU</string>
+        </default>
+      </java.net.URI>
+    </fuel>
     <grain class="com.billkuker.rocketry.motorsim.grain.MultiGrain">
       <count>2</count>
       <grain class="com.billkuker.rocketry.motorsim.grain.CoredCylindricalGrain">
index 894f599b5816a6fe1c487e266dc9bc5c7b042da0..d8065bcca7ccea0e2bd706aa42db6a50f4da3e48 100644 (file)
@@ -8,6 +8,8 @@ import java.awt.event.ActionListener;
 import java.beans.PropertyChangeEvent;\r
 import java.beans.PropertyChangeListener;\r
 import java.io.File;\r
+import java.io.FileInputStream;\r
+import java.io.FileOutputStream;\r
 import java.util.HashMap;\r
 import java.util.Vector;\r
 \r
@@ -143,7 +145,7 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
                                                                                        }\r
                                                                                        try {\r
                                                                                                Motor m = MotorIO\r
-                                                                                                               .readMotor(file);\r
+                                                                                                               .readMotor(new FileInputStream(file));\r
                                                                                                addMotor(m, file);\r
                                                                                                \r
                                                                                        } catch (Exception e) {\r
@@ -355,7 +357,9 @@ public class MotorWorkbench extends JFrame implements TreeSelectionListener {
 \r
        private void save(Motor m, File f) {\r
                try {\r
-                       MotorIO.writeMotor(m, f);\r
+                       FileOutputStream fo;\r
+                       MotorIO.writeMotor(m, fo = new FileOutputStream(f));\r
+                       fo.close();\r
                } catch (Throwable t) {\r
                        JOptionPane.showMessageDialog(MotorWorkbench.this, t.getMessage());\r
                }\r
index d328a44d86c0f94d155686e760c0ad8c47ad3d4c..a1eaf726dfa841129004576f24b590ac3510d74b 100644 (file)
@@ -4,8 +4,10 @@ import java.io.File;
 import java.io.FileReader;\r
 import java.io.FileWriter;\r
 import java.io.IOException;\r
+import java.io.InputStream;\r
 import java.io.ObjectInputStream;\r
 import java.io.ObjectOutputStream;\r
+import java.io.OutputStream;\r
 import java.io.StringReader;\r
 import java.io.StringWriter;\r
 import java.net.URI;\r
@@ -114,17 +116,15 @@ public class MotorIO {
                return xstream;\r
        }\r
        \r
-       public static void writeMotor(Motor m, File f) throws IOException{\r
-               FileWriter fout = new FileWriter(f);\r
-               ObjectOutputStream out = getXStream().createObjectOutputStream(fout);\r
+       public static void writeMotor(Motor m, OutputStream os) throws IOException{\r
+               ObjectOutputStream out = getXStream().createObjectOutputStream(os);\r
                out.writeObject(m);\r
                out.close();\r
-               fout.close();\r
+               os.flush();\r
        }\r
        \r
-       public static Motor readMotor(File f) throws IOException{\r
-               FileReader fin = new FileReader(f);\r
-               ObjectInputStream in = getXStream().createObjectInputStream(fin);\r
+       public static Motor readMotor(InputStream is) throws IOException{\r
+               ObjectInputStream in = getXStream().createObjectInputStream(is);\r
                Motor m;\r
                try {\r
                        m = (Motor)in.readObject();\r
index b401bc506ed6d4857ca70b1c268031ab1f1393ea..b77dba9546203852a8f6a82df0f3600ceb6646f8 100644 (file)
@@ -2,6 +2,8 @@ package com.billkuker.rocketry.motorsim.test;
 \r
 import java.beans.PropertyVetoException;\r
 import java.io.File;\r
+import java.io.FileInputStream;\r
+import java.io.FileOutputStream;\r
 \r
 import javax.measure.unit.SI;\r
 \r
@@ -48,9 +50,9 @@ public class MotorIOTest {
 \r
                File f = new File("MotorIOTest.xml");\r
 \r
-               MotorIO.writeMotor(m, f);\r
+               MotorIO.writeMotor(m, new FileOutputStream(f));\r
 \r
-               MotorIO.readMotor(f);\r
+               MotorIO.readMotor(new FileInputStream(f));\r
 \r
        }\r
 }\r