黑马程序员技术交流社区
标题:
IO流复制文件
[打印本页]
作者:
清秋
时间:
2011-11-26 12:50
标题:
IO流复制文件
本帖最后由 清秋 于 2011-11-26 15:53 编辑
复制的第二种方法
当执行write()方法后,关闭流,为什么还需要执行close()方法?
fr==null
public static void copy_2()
{
FileWriter fw = null;
FileReader fr = null;
try
{
fw = new FileWriter("CopyText.txt");
fr = new FileReader("CopyText.java");
char[] buf = new char[1024];
int len = 0;
while ( (len=fr.read(buf)) != -1 )
{
fw.write(buf,0,len);
}
}
catch (IOException e)
{
throw new RuntimeException("读写异常");
}
finally
{
if (fw!=null) //此处是否为空
{
try
{
fw.close();
}
catch (IOException e)
{
}
}
if (fr!=null)
{
try
{
fr.close();
}
catch (IOException e)
{
}
}
}
}
复制代码
作者:
楓林虹影
时间:
2011-11-26 12:57
close();就是为了关闭流啊 流操作完毕后必须关闭
作者:
侯伟浩
时间:
2011-11-26 13:13
我想你是理解错了,你是不是以为用流读完数据后流是自动关闭的吗?
你要自己关闭!关闭流释放资源。
作者:
清秋
时间:
2011-11-26 13:47
hou3172568 发表于 2011-11-26 13:13
我想你是理解错了,你是不是以为用流读完数据后流是自动关闭的吗?
你要自己关闭!关闭流释放资源。 ...
是的说,关闭之前会刷新缓冲。。。确实理解错了
那个。关闭流资源,关闭流资源的话,关闭 Writer 和 关闭 Reader 有先后顺序么
我看视频里都是先Reader后Writer。然后。我自己觉得应该先关闭Writer的
作者:
飞逸
时间:
2011-11-26 13:51
close(); 是流操作完后必须要把流关闭,同时释放流缓存的资源,关闭流。
作者:
王丰盛568
时间:
2011-11-26 14:46
执行close()方法 就是执行完毕,就要关闭流,目的就是为了释放资源。否则如果每次执行完毕,都不关闭的话,程序会占用计算机的资源,时间久了,会影响计算机的的运行速度。
作者:
常文艺
时间:
2011-11-26 15:21
输入流和输出流是分离的,就好像两只鸡,你杀死一个,另一个死不了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2