Welcome, guest | Sign In | My Account | Store | Cart

Using the pickle module under jython is a rather slow method for storing data. Using the ObjectOutputStream speeds it up. You can save and restore objects (jython and java) with these functions.

Python, 16 lines
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from java import io
def saveObject(x,fname="jython.bin"):
    outs=io.ObjectOutputStream(io.FileOutputStream(fname))
    outs.writeObject(x)
    outs.close()
def loadObject(fname="jython.bin"):
    ins=io.ObjectInputStream(io.FileInputStream(fname))
    x=ins.readObject()
    ins.close()
    return x


x={1:1,'two':"2",'three':[1,2,3]}
saveObject(x)
y=loadObject()
print y

The objects have to implement the Serializable interface. Most of jython's classes do. It is also very useful together with the JNumeric package.

1 comment

eoghan murray 20 years, 2 months ago  # | flag

PythonObjectInputStream. Should the Input Stream be a PythonObjectInputStream from org.python.util?

I would love to see a recipe on using Java's RandomAccessFile with Jython

Eoghan