2010-09-30 203 views

回答

0

你使用什麼API來進行文件加載?

1)如果FileConnection API可以按塊加載數據。在這種情況下沒有問題。

2)如果你使用Class.getResourceAsStream(String pathInsideJar),你會遇到問題。在將控制權返回給您的代碼之前,大多數KVM會充分加載資源。所以我看到了一種方法 - 在創建jar之前將大文件分割成幾個小文件。

+0

嗨,感謝您的回覆,我正在使用FileConnection API。你能否給我一個示例代碼。當我上傳一個大文件到Web應用程序時出錯。 – 2010-10-01 04:39:28

0

DataInputStream dis = FileConnection.getDataInputStream();

byte [] buffer = new byte [2048];

int count;

int total = 0;

Vector v = new Vector();

ByteArrayOutputStream baos = new ByteArrayOutputStream();

而((計數= dis.read(緩衝液))> = 0)

{

總+ =計數;

baos.write(buffer,0,count);

如果(總> 100000)

{

baos.close(); 

byte[] data = baos.toByteArray(); 

v.addElement(data); 

baos = new ByteArrayOutputStream(); 
} 

}

所以,你將有幾個字節數組的載體。你可以一個一個發送。

或者將所有文件數據讀入一個字節數組,並將這些數據按發送數據的移位開始位置進行部分發布。