This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
You could do that but that would not solve the problem, since the code that is in the try-block will not throw any other checked exceptions than IOException, and when it throws an unchecked exception you probably wouldn't want to catch it anyway. The code after the catch blocks would still be reached with in being null.
The != null check you showed is in the wrong place; it will actually make things worse there. You initialise the Stream inside a try; you use the != null check afterwards. If you have all the reading done inside the same try, you only need the != null check when you close the stream.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com