No puedes hacer las dos cosas a la vez.
Cuando descargas un archivo, se envían encabezados al navegador para que sepa que debe iniciar la descarga, pero, si envías contenido a la página, entonces el navegador "entiende" que se trata de un código HTML e ignorará la descarga.
Aparte de que hay mejores formas de generar un HTML que usando writeln(), lo que podrías hacer es crear esa página e incluir un redireccionamiento a la descarga del archivo; el navegador mostrará el mensaje y después iniciará el proceso de descarga.
Info para redireccionamiento:
https://www.w3.org/TR/WCAG20-TECHS/H76.html
Lógicamente, la URL de la redirección será la que descarga el archivo.