MVC is about separing concerns. So you have three components for eachs request/response interaction. The data itself, the view for displaying the data, and the controller who is the master of puppets.
That's the model so you should use the three of them if they apply (by example, if you have a static page it doesn't have a model at all... it doesn't have a model to display, only HTML).
In some cases you can write directly from the controller, letting the controller to decide view and model. It's useful in the cases when there's no point to program a separate view like the case you point: a file output.
Anyway you could program a separate view. Something like FileOutputView, that receives the file or path or stream to output. That way the class that decides the rendering would be separated from the controller. But in this case there's little benefit in being such a purist.
I said program before because the view is responsible for rendering, but it doesn't have to be necesarily a declarative type of view, like JSP. Of course JSP will be the 99% of the time.