SerializationContext serializationContext=new SerializationContext();
Amf3Output amfOut = new Amf3Output(serializationContext);
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
DataOutputStream dataOutStream = new DataOutputStream(outStream);
amfOut.setOutputStream(dataOutStream);
//HashMap
Map map = new HashMap();
String[] arr = "1,2,3,4,5".split(",");
map.put("datas", arr);
map.put("name","kinglong");
map.put("age", "金龙工作室");
map.put("domain", "klstudio.com");
try {
amfOut.writeObject(map);
} catch (IOException e1) {
e1.printStackTrace();
}
byte[] messageBytes = outStream.toByteArray();
try
{
FileOutputStream os;
OutputStreamWriter ow;
BufferedWriter out;
os = new FileOutputStream("D://test.txt");
ow = new OutputStreamWriter(os);
out = new BufferedWriter(ow);
os.write(messageBytes);
os.flush();
os.close();
System.out.println("OK");
}catch(Exception e)
{
System.out.println("error :" + e);
}
-------------------------------------------
==flex 端读取数据
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.FlexEvent;
private var loader:URLLoader=new URLLoader();
private function onComplete(evt:Event):void
{
var start:Number=getTimer();
var byte:ByteArray=loader.data as ByteArray;
var obj:Object=byte.readObject(); //读取出来的对象
var end:Number=getTimer();
Alert.show("耗时:"+(end-start)+"毫秒");
Alert.show(obj.name+"-"+obj.age+"-");//+obj.arr.length);
// trace(”耗时:”+(end-start)+”毫秒”)
// trace(obj.name,obj.age,obj.arr.length)
}
protected function application1_initializeHandler(event:FlexEvent):void
{
loader.load(new URLRequest("test.txt"));
loader.addEventListener(Event.COMPLETE,onComplete);
loader.dataFormat=URLLoaderDataFormat.BINARY;
}
]]>
</mx:Script>