2 baidu 16769629 baidu_16769629 于 2017.09.02 17:32 提问

java文件流的关闭问题
  1. writer =new BufferedWriter(new OutputStreamWriter(out));
  2. OutputStreamWriter outstr = new OutputStreamWriter(out); writer =new BufferedWriter(outstr); writer和out这两个文件流需要关闭我晓得。可是第一个案例new OutputStreamWriter 这个new出来的流我没有实例化,这样写合理吗,还是说像第二个案例这样关闭三个流。第一种会不会造成流不关闭情况。有人晓得不。

2个回答

sphinx0906
sphinx0906   2017.09.07 17:39

流的使用你要记住几个层级的,,不要把嵌套在里面的流关掉而导致外部的流无法运作,,所哟你开启一个流就尽量使用一个流,,开启了不使用很浪费空间,,,还有最后用完一定要close掉,,要不然它会一直占用。

fight_in_dl
fight_in_dl   Ds   Rxr 2017.09.03 05:27

1 题目中writer和out这两个流构成流链(stream chain),在这种情况下,只需要关闭最上层的流(此例中为writer),链中的其它流会自动关闭。
2 如题目所示,有两种写法:

Something s = new Something(); //如果你在之后并不需要用 s 这个变量,那么此种写法和下面写法没有区别
Other o = new Other(s);

Other o = new Other(new Something()); //如前所述,如果不需要使用s,那么这种写法更为简洁,也更常用。

回到题目,基本程序逻辑如下即可:

writer =new BufferedWriter(new OutputStreamWriter(out));
//其它代码
writer.close(); //关闭最上层流,流链中其它流会自动关闭。

如果对您有帮助,请采纳答案好吗,谢谢!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java中文件流的关闭问题
问题引入之前写代码涉及到文件读写的时候,都没有关闭相关的文件流。对于小程序,并不会发生问题,但是当程序的读写数据大,频繁创建文件流的时候,就会出现一些问题,这里特整理了一些有关数据流关闭的事项。数据流关闭这里以如下所示的代码为例InputStreamReader in = new InputStreamReader(new FileInputStream(file)); BufferedReader
Java文件流关闭和垃圾回收问题
<br /> <br />周末碰到一段代码,是关于Java IO流的,代码中出现在一个多线程的系统中,其中一段代码在打开一个文件操作流用完以后没有及时关闭,开始以为很快会出现打开文件太多或者导致内存溢出,但是在运行了很长时间以后仍然没有出现问题,后来自己写了个小程序测试了一下,总算似乎搞清楚为啥了。<br />先看以下一段代码<br />import java.io.FileInputStream; public class TTT { public static void main(String[]
Java文件流关闭和垃圾回收问题 (文件无法删除问题)
Java文件流关闭和垃圾回收问题   周末碰到一段代码,是关于Java IO流的,代码中出现在一个多线程的系统中,其中一段代码在打开一个文件操作流用完以后没有及时关闭,开始以为很快会出现打开文件太多或者导致内存溢出,但是在运行了很长时间以后仍然没有出现问题,后来自己写了个小程序测试了一下,总算似乎搞清楚为啥了。 先看以下一段代码 [java] view pla
Java如何正确的使用try catch finally关闭文件流的总结
上学的时候,也许老师告诉你用完文件流记得要关闭,可能为了省事,他也没仔细的给你示范如何关闭,实际开发中,要是不能正确关闭流,服务器分分钟炸掉,那是很正常的。一般都是新人才会有这个问题。当然都是从新人走过来的嘛。下面是大师兄总结的关闭文件流的基本动作,有不合适的,还请指出来。流在try外面声明,在try里面初始化,然后在finally里面给close,还记得处理异常efinally里面close的时...
java新IO文件流
java新IO文件流java新IO文件流java新IO文件流java新IO文件流java新IO文件流java新IO文件流java新IO文件流
java中有关文件流的操作
文件流: 顾名思义,程序和文件打交道. 此时我们谈及的文件,值得是纯文本文件(txt的,不要使用Word,Excel), 在字节流中,暂时不要使用中文. FileInputStream: 文件的字节输入流 FileOutputStream: 文件的字节输出流 FileReader:文件的字符输入流 FileWriter:文件的字符输出流 文件字符流: 文件的字节流...
Java如何实现文件拷贝操作和如何正确关闭资源
使用字节流完成文件的拷贝: 使用字节输入流(FileInputStream)将源文件中的数据读进来,同时使用字节输出流(FileOutputStream)将读进来的数据写到目标文件中,即一边读一边写,完成文件的拷贝。 //使用字节流完成文件的拷贝操作 public class FileStremCopyDemo { public static void main(String[] args)
对IO流关闭的思考
流必须要关闭的原因 java相对C,C++来说不需要手动释放内存,在对象引用被消除之后,正常情况下内存资源是会被垃圾回收,那么在使用完IO流之后为什么需要手动关闭. 这是为了回收系统资源,比如释放占用的端口,文件句柄,网络操作数据库应用等.对Unix系统来说,所有的资源都可以抽象成文件,所以可以通过lsof来观察。 看下面这个例子,我们创建许多的IO流但是不关闭 public clas...
JAVA:IO流 之 节点流和处理流以及流的关闭顺序(5)
原文出处:http://www.cnblogs.com/byrhuangqiang/p/3924985.html?utm_source=tuicool&amp;amp;utm_medium=referral 代码: FSDataInputStream fsin = fs.open(new Path(filein)); FSDataOutputStream fsout = fs.append...
Java 8 Stream 流已被操作或关闭
在Java 8中,Stream不能重复使用,一旦被消耗或使用,流将被关闭,类似流水线,水龙头的水一样一去不复返 示例 - 流关闭 查看以下示例,它会抛出一个IllegalStateException,表示“流被关闭”。 TestJava8.java package com.mkyong.java8; import java.util.Arrays; import java.u