You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@accumulo.apache.org by David Medinets <da...@gmail.com> on 2012/11/17 06:04:56 UTC
Do Outer Input Streams Need to be Closed?
I've seen a lot of Java code that looks like this example from
org.apache.accumulo.core.client.admin.TableOperationsImpl. Does the
BufferedReader need to be closed or it is automatically closed when
the ZipInputStream is closed?
ZipInputStream zis = new ZipInputStream(fs.open(path));
try {
ZipEntry zipEntry;
while ((zipEntry = zis.getNextEntry()) != null) {
if (zipEntry.getName().equals(Constants.EXPORT_TABLE_CONFIG_FILE)) {
BufferedReader in = new BufferedReader(new InputStreamReader(zis));
String line;
while ((line = in.readLine()) != null) {
String sa[] = line.split("=", 2);
props.put(sa[0], sa[1]);
}
break;
}
}
} finally {
zis.close();
}
Re: Do Outer Input Streams Need to be Closed?
Posted by John Vines <vi...@apache.org>.
Not necessary, BufferedReader.close() simply closes the encasing input
stream and nulls out the 2 internal objects for it (the input and the
buffer).
On Sat, Nov 17, 2012 at 12:04 AM, David Medinets
<da...@gmail.com>wrote:
> I've seen a lot of Java code that looks like this example from
> org.apache.accumulo.core.client.admin.TableOperationsImpl. Does the
> BufferedReader need to be closed or it is automatically closed when
> the ZipInputStream is closed?
>
> ZipInputStream zis = new ZipInputStream(fs.open(path));
> try {
> ZipEntry zipEntry;
> while ((zipEntry = zis.getNextEntry()) != null) {
> if (zipEntry.getName().equals(Constants.EXPORT_TABLE_CONFIG_FILE))
> {
> BufferedReader in = new BufferedReader(new
> InputStreamReader(zis));
> String line;
> while ((line = in.readLine()) != null) {
> String sa[] = line.split("=", 2);
> props.put(sa[0], sa[1]);
> }
>
> break;
> }
> }
> } finally {
> zis.close();
> }
>