Как пропустить EOF при работе с несколькими документами? - PullRequest
0 голосов
/ 26 декабря 2018

My ByteArrayOutputStream содержит данные для нескольких документов (таким образом, имея более 1 EOF).Хотя я пытаюсь отправить вывод, используя BufferedOutputStream, он передает только данные для последнего документа (возможно, потому что он перезаписывает все другие документы, кроме последнего).

Есть ли способ пропустить всеEOF, кроме последнего, и передать его на BuffererdOutputStream?

Java-код ниже:

    private void outputBinaryTable(IRecordSet table, BufferedOutputStream output) throws ConnectorException, IOException
{
    IRecordMetaData fields = table.retrieveMetaData();
    int columnCount = fields.getColumnCount();  

    ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

    //Utils.write("Table " + tableName + " has " + columnCount + " columns.");          
    loc.errorT("Table Name " + table + " has " + columnCount + " columns.");


    if (table.first()){
        do  // For each row
        {
            for (int k = 0; k < columnCount; k++)
            {
                // Get the data as a byte array
                byte [] data = table.getBytes(k);

                outputStream.write(data);
                //Utils.write(new String(data));
                // Write the bytes to the output stream
                //output.write(data);
            }
        }
        while (table.next());

        byte [] combineData = outputStream.toByteArray();
        output.write(combineData);
    }

}
...