『壹』 java:內存中已經有了一個對象,如何使用ByteArrayOutputStream將該對象寫入文件呢
ByteArrayOutputStream是將內存中的byte數據作為輸出目標,
寫入到文件則需要打開文件流,
內存中的對象要持久化有兩種方式,一種是直接使用對象的序列化介面,該對象必須實現Serializable介面;另外一種自己寫對象序列化介面。
1、ByteArrayOutputStream要寫到文件可以通過writeTo方法,但是這樣顯然太啰嗦了,需要控制flush時機。
2、如果是對象已經實現序列化介面直接使用如下方式
ObjectOutputStreamo=newObjectOutputStream(newFileOutputStream("filename"));
o.writeObject(obj);
『貳』 java 怎麼把數據存到內存中
這里你採納與否沒關系,給你說說編程與內存的關系。
你定義的任何變數,常量,類,方法等等,其實都在內存中,沒有所謂的把數據存內存中,這概念,你可以想一下電腦重啟或關機後,內存中的所有數據,都會丟失,除非你保存到磁碟中去。
在內存中的數據有兩塊,第一、緩沖,一般寫數據到磁碟的時候開辟出來的內存空間;第二、緩存,一般是從磁碟讀數據到內存中開辟出來的內存空間。會這么使用,原因很簡單,磁碟讀寫數據速度與內存不一致(磁碟的存取效率遠遠小於內存的存取效率),為了提高數據的存取效率,才會這么乾的。
一般而言,java中的所謂數據,大部分都是類,從自動引用計數的概念來分析,你想把對象長久的放在內存中,不會被垃圾回收機制釋放,注意制葯有一個對象在使用/引用你的數據,這條數據就會存在內存中。所以,想servlet中的全局配置參數,隨時可以取到還是唯一一份,你可以參考一下。
另外內存使用分堆與棧,堆在面向對象編程中存儲對象的,棧是方法或函數執行的時候臨時開辟的存儲空間,方法或函數執行完畢就會釋放。
希望我的回復能幫助到你,採納與否沒關系。有更好的答案,我就隱藏我的回復。
『叄』 Java.IO中 為什麼帶緩沖的位元組輸入輸出流速度比不帶緩沖的速度快
原理:通過將位元組緩沖到內存然後到磁碟比直接通過程序輸出到磁碟要快。
緩沖:就是通過緩沖流操作位元組讀或寫入內存。
在內存中就是以流的形式輸出。
總結:從內存讀取數據比從磁碟讀取數據要快。