示例#1
0
    /** @return the DocumentBlocks */
    DocumentBlock[] getBlocks() {
      if (isValid() && _writer != null) {
        ByteArrayOutputStream stream = new ByteArrayOutputStream(_size);
        DocumentOutputStream dstream = new DocumentOutputStream(stream, _size);

        _writer.processPOIFSWriterEvent(new POIFSWriterEvent(dstream, _path, _name, _size));
        bigBlocks = DocumentBlock.convert(_bigBlockSize, stream.toByteArray(), _size);
      }
      return bigBlocks;
    }
示例#2
0
    /**
     * write the blocks to a stream
     *
     * @param stream the stream to which the data is to be written
     */
    void writeBlocks(OutputStream stream) throws IOException {
      if (isValid()) {
        if (_writer != null) {
          DocumentOutputStream dstream = new DocumentOutputStream(stream, _size);

          _writer.processPOIFSWriterEvent(new POIFSWriterEvent(dstream, _path, _name, _size));
          dstream.writeFiller(
              countBlocks() * _bigBlockSize.getBigBlockSize(), DocumentBlock.getFillByte());
        } else {
          for (int k = 0; k < bigBlocks.length; k++) {
            bigBlocks[k].writeBlocks(stream);
          }
        }
      }
    }