当一个流做为参数传入另外一个流,需要关闭吗?例如本题的fo.close();

问题描述

//TestTransForm1.javaimportjava.io.*;publicclassTestTransForm1{publicstaticvoidmain(Stringargs[]){try{OutputStreamWriteros=null;FileOutputStreamfo=null;fo=newFileOutputStream("D:\corejava\417\1.txt");os=newOutputStreamWriter(fo);os.write("abcde");System.out.println(os.getEncoding());//fo.close();os.close();fo=newFileOutputStream("D:\corejava\417\1.txt",true);os=newOutputStreamWriter(fo,"ISO8859-1");os.write("ZYXWVU");System.out.println(os.getEncoding());//fo.close();os.close();}catch(Exceptione){System.out.println("error!");e.printStackTrace();}}}

解决方案

解决方案二:
关闭了最外面的流貌似就会一起关闭了
解决方案三:
以为是管道套管道呢,这个可以关,也可以不管,因为fo指向了新的对象,旧的会被垃圾回收
解决方案四:
不能关,关掉传进去还有鸟用。
解决方案五:
在处理完之前不能关闭,否则关闭了的话就读不到数据了。
解决方案六:
kaixinwang

时间: 2024-10-22 19:41:16

当一个流做为参数传入另外一个流,需要关闭吗?例如本题的fo.close();的相关文章

以一个链表指针作参数传入一个函数里,若此时链表为空,则初始化链表,为什么在主函数中不能用?

问题描述 以一个链表指针作参数传入一个函数里,若此时链表为空,则初始化链表,为什么在主函数中不能用? #include using namespace std; typedef struct Node { int age; struct Node* next; }LIST; void addList1(LIST* pHead,int x)//链表结尾加节点 { LIST* pM=new LIST();//新节点 pM->age=x; pM->next=NULL; if(pHead==NULL)

求一个c#通用函数,将传入的一个长字符串按规定的长度分几行等长输出

问题描述 求一个c#通用函数,将传入的一个长字符串按规定的长度分几行等长输出 求一个c#通用函数,将传入的一个长字符串按规定的长度分几行等长输出,若遇到百分比范围(如40%~50%)不能拆开,要放在同一行. 数字占一位,汉字是占两位 例如: 若传入这样一个字符串: 今后,江苏联络处在公安部的授权范围内开展工作,接受国际刑警组织中国国家中心局的业务指导,负责20%~30%国际刑警组织框架内的联络工作,统筹全省公安机关22.543%~60%涉外刑事案件的协调组织. 输出: 今后,江苏联络处在公安部的

在VBScript中实现-函数/方法名作为参数传入另一个函数_应用技巧

在JS中有这种用法,某个函数名可以当成参数的形式,传入到另外一个函数内部去,例如: <script type="text/javascript"> <!-- function myFuncA(str,myFuncB){  str = str + " 您好!";  str = myFuncB(str);  return str; } function myFuncB(str){  str = str + "欢迎来到IECN.NET"

在VBScript中实现-函数/方法名作为参数传入另一个函数

在JS中有这种用法,某个函数名可以当成参数的形式,传入到另外一个函数内部去,例如: <script type="text/javascript"> <!-- function myFuncA(str,myFuncB){  str = str + " 您好!";  str = myFuncB(str);  return str; } function myFuncB(str){  str = str + "欢迎来到IECN.NET"

PowerShell函数中把参数传入另一个函数的函数传参例子_PowerShell

本文介绍在自定义PowerShell函数时,可以使用@PSBoundParameters来将参数传递给另一函数. 下面,我们来创建一个Get-BIOS的函数, 复制代码 代码如下: function Get-BIOS {     param     (         $ComputerName,         $Path     )     Get-WmiObject -Class Win32_BIOS @PSBoundParameters } 在这个函数中,我们并没有作任何实际的操作,只是

grep-一个Shell的简单问题:将ls的内容作为参数传入

问题描述 一个Shell的简单问题:将ls的内容作为参数传入 就是一个目录下有多个文件夹. 我使用下面的命令: ls | grep test 然后出现下面的几个文件夹: test test1 test2 test3 现在我想把这几个文件夹作为类似于xargs的东西传到我的for循环里来 就类似for t in tests 有没有啥比较优雅的方法把这些文件夹放入到tests中. 像ls | grep test > tmp | while line in tmp; do 这样的,就不是优雅的方法了吧

cxf +restful项目,实现一个以图片二进制流做参数的接口,接口和客户端怎么写?

问题描述 cxf +restful项目,实现一个以图片二进制流做参数的接口,接口和客户端怎么写? 以图片路径为参数的接口: @GET @Path("/vcardBean/{path}") @Produces({"application/json","application/xml"}) public VCardBean getVCardBean(@PathParam("path") String path) { //path

c语言中怎么把一个大小不确定的二维数组当作参数传入函数中

问题描述 c语言中怎么把一个大小不确定的二维数组当作参数传入函数中 c语言中怎么把一个大小不确定的二维数组当作参数传入函数中,取大神,取大神,取大神 解决方案 用VC++新建一个程序,默认生成的main函数定义如下 int mian(int argc, char* args[]) 这就是一个例子. 解决方案二: 一个表示长度的参数,一个指向二维数组的指针 解决方案三: fun(args[][],int rows,int cols) 解决方案四: void Func(int array[][10]

获取参数-函数的返回值传递给另一个函数做参数

问题描述 函数的返回值传递给另一个函数做参数 在c++中如何将一个函数的返回值作为另一个函数的参数?具体要怎么做才可以实现?我返回一个return值后,想把这个值给下一个函数,作为它的参数来进行计算,各位大神谢谢了 解决方案 public int a(){ int i=1; return i; } public void b(a()){ int j=i; } 编程基础,不知道你问得是不是这样的- 解决方案二: 直接写 int add(2, sub(4, 5)); 也可以分开 int r = su