\r
package org.tianocore.framework.tasks;\r
\r
-import java.io.DataInputStream;\r
+import java.io.ByteArrayOutputStream;\r
import java.io.DataOutputStream;\r
-import java.io.File;\r
-import java.io.FileInputStream;\r
-import java.io.FileOutputStream;\r
import java.util.ArrayList;\r
import java.util.Iterator;\r
import java.util.List;\r
@param Buffer The point of output buffer\r
\r
**/\r
- public void toBuffer (DataOutputStream buffer, DataOutputStream orgBuffer){\r
+ public void toBuffer (DataOutputStream buffer){\r
\r
Section sect;\r
- File compressOut;\r
\r
//\r
// Get section file in compress node.\r
//\r
try{\r
- compressOut = new File ("Compress.temp");\r
- FileOutputStream fo = new FileOutputStream (compressOut.getName());\r
- DataOutputStream Do = new DataOutputStream (fo);\r
+ \r
+ ByteArrayOutputStream bo = new ByteArrayOutputStream ();\r
+ DataOutputStream Do = new DataOutputStream (bo);\r
\r
//\r
// Get each section which under the compress {};\r
// Call each section class's toBuffer function.\r
//\r
try {\r
- sect.toBuffer(Do, orgBuffer);\r
+ sect.toBuffer(Do);\r
}\r
catch (BuildException e) {\r
System.out.print(e.getMessage());\r
}\r
Do.close(); \r
\r
- //\r
- // Get contain to Buffer\r
- //\r
- FileInputStream fi = new FileInputStream (compressOut.getName());\r
- DataInputStream di = new DataInputStream (fi);\r
- byte[] fileBuffer = new byte[(int)compressOut.length()];\r
- di.read(fileBuffer);\r
- \r
//\r
// Call compress\r
//\r
+ byte[] fileBuffer = bo.toByteArray();\r
Compress myCompress = new Compress(fileBuffer, fileBuffer.length); \r
\r
//\r
buffer.writeByte(0);\r
}\r
//\r
- // orgBuffer 4 Byte aligment\r
- //\r
- size = (int)compressOut.length();\r
- while ((size & 0x03) != 0){\r
- size ++;\r
- orgBuffer.writeByte(0);\r
- }\r
- //\r
// Delete temp file\r
//\r
- di.close();\r
- compressOut.delete();\r
+ //di.close();\r
+ //compressOut.delete();\r
\r
}\r
catch (Exception e){\r