Я создаю ASN1 формат файла с именем файла, тип файла контента и FILEDATA когда-либо я импортировать большой размер файла он дает ошибку 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);
Есть ли альтернативный способ сделать то же самое.
спасибо Я могу добавить байта байта в файл. можете ли вы объяснить свой код? как вставлять в файл? –
да .. вы можете сделать that.You должен убедиться, что размер байта [] не очень высок и может управляться с помощью JVM в своей heap.You могут также проверить перегруженные методы writeByteArrayToFile.It компенсировали и чтобы определить длину байта и позицию –
. Моя проблема в том, что только я должен разрешить файл с большим размером. и почему байт [] становится очень высоким. , что почему я получаю ошибку на этой линии байт [] filebytes = новый DERSequence (сл) .getEncoded(); кодирования вычисления больше байт, поэтому размер кучи становится полным. –