今天热门
热点:

有关try catch 中return的问题,catchreturn


try  catch  public  String recordContextFormFile(String filename){
   FileInputStream filei=null;
   ByteArrayOutputStream out = new ByteArrayOutputStream();;
   try{
   filei =context.openFileInput(filename);
   int len=0;
   byte[] data = new byte[1024];
   while((len =filei.read(data))!=1 ){
   out.write(data, 0, len);
   }
   return new String(out.toByteArray()); 
   }catch (Exception e) {
   e.printStackTrace();
}
   
 return "";
   
   
   }

运行程序后不报错  但是输出的是“”  如果将return new String(out.toByteArray()); 移到return "";这里 就能返回值,

请问下  不是在try{}里面 有返回值就结束了吗 怎么还会返回""

解决方案

楼主对于你说的不报错我深表怀疑。
其次,你得到的所谓的返回值的正确性也表示怀疑。
因为你的程序有个未知变量context导致无法执行,我仅指出几个修改意见。具体见下面源代码。
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;

public class IOExample {
public static String recordContextFormFile(String filename) {
FileInputStream filei = null;
ByteArrayOutputStream out = new ByteArrayOutputStream();
;
try {
// filei = context.openFileInput(filename);
filei = new FileInputStream(filename);
int len = 0;
byte[] data = new byte[1];
while ((len = filei.read(data)) != -1) {
out.write(data, 0, len);
}

return new String(out.toByteArray(),"gbk");//or "utf-8"
} catch (Exception e) {
e.printStackTrace();
}finally{
if(filei != null){
//这里在没有框架控制的情况下要把文件流关闭,否则会产生内存泄露。
try {
filei.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

return "出异常啦!";
}

public static void main(String[] args) {
//这里filename你可以在自己电脑某个地方建一个文件,随便输入点内容。
String filename = "d:/p1.py";
String result = recordContextFormFile(filename);

System.out.println(result);
}
}

www.zrccd.nettrue/topics/20180204/188780.htmlTechArticle有关try catch 中return的问题,catchreturn try  catch publicStringrecordContextFormFile(Stringfilename){ FileInputStreamfilei=null; ByteArrayOutputStreamout=newByteArrayOutputStream();; try{ filei=context.openFileInput(filename); in...

相关文章

    暂无相关文章

用户评论

大家都在看