Please don't write code like this. Try-with-resources automatically closes your resources, and handles the exceptions that may occur during closing. Also, if an exception is thrown when inputStream is closed, outputStream will never be closed. The following code is more clear and robust:
Not for the purpose of operating with the resources. You may still need nested try statements if you're performing another operation that may throw an exception, and you want to handle the exception and continue running the outer try clause.
However, a nested try statement without any other statements in the same scope is always useless.
For instance, let's say I want to read a file that has a number of records. The library that I use to read the records throws an exception if a record is corrupt. When I detect a corrupt record, I would still like to go on and try reading the rest of the records. Here's how I would do it: