1
我創建與文件名,文件內容類型和FILEDATA ASN1格式的文件時,曾經我導入大尺寸的文件時,它給人的Java堆空間錯誤。ASN1文件創建給錯誤的大文件大小
ASN1EncodableVector seq = new ASN1EncodableVector();
seq.add(new DERTaggedObject(false, 0, new DERSequence(new DERUTF8String(new File(filePath).getName()))));
seq.add(new DERTaggedObject(false, 1, new DERSequence(new DERUTF8String(fileContentType))));
seq.add(new DEROctetString(fileDataInBytes));
ASN1InputStream tempstream=new ASN1InputStream(new ByteArrayInputStream(bytesArray));
ASN1Sequence seq1=(ASN1Sequence)tempstream.readObject();
seq.add((ASN1Encodable) seq1);
byte[] filebytes= new DERSequence(seq).getEncoded();//On this line i am getting error of heap size
FileUtils.writeByteArrayToFile(new File(fileName) , filebytes);
有沒有其他方法可以做同樣的事情。
感謝設置inital和最大堆大小的數據答覆我可以在文件中逐字節追加。你能解釋你的代碼嗎?如何嵌入文件? –
是的..你可以做that.You必須確保的byte []的大小不是很高,可以同時選中writeByteArrayToFile.It的重載方法已經可以抵消由JVM在其heap.You進行管理,長度參數來確定字節和位置的長度 –
我的問題是,只有我必須允許具有更大尺寸的文件。以及爲什麼byte []變得非常高。 ,之所以我收到這條線上的字節[] filebytes =新DERSequence(SEQ)錯誤.getEncoded(); 編碼計算更多的字節,爲什麼堆大小變滿。 –