private File writeMemoryMappedArchiveToTempFile(MemoryMappedArchive mma, String fileSuffix) throws IOException { File tempFile = File.createTempFile("jsr88-", fileSuffix); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(tempFile)); int chunkSize = 32 * 1024; long remaining = mma.getArchiveSize(); BufferedInputStream bis = new BufferedInputStream( new ByteArrayInputStream(mma.getByteArray())); try { while(remaining != 0) { int actual = (remaining < chunkSize) ? (int) remaining : chunkSize; byte[] bytes = new byte[actual]; try { bis.read(bytes); bos.write(bytes); } catch (EOFException eof) { break; } remaining -= actual; } } finally { bos.flush(); bis.close(); bos.close(); } return tempFile; }
BufferedInputStream bis = null; int chunkSize = 32 * 1024; long remaining = mma.getArchiveSize(); try { bos = new BufferedOutputStream(new FileOutputStream(tempFile));