I need a Java function that returns the results of a SQL SELECT query as an InputStream parameter for another system that sends the result over a network.
However, the InputStream must be of a String with custom delimiters (i.e. often, but not always, CSV).
While I can easily create a function to retrieve the result, create a delimited String, and finally convert that String to an InputStream, the SQL result will often be much too large to process in memory. Also, processing the entire result set before returning the result will incur an unwanted wait time.
How can I return an InputStream to iterate over the SQL result and send the processed (delimited) data as it is returned from the database?