transactional file output stream