日期:2014-05-18  浏览次数:20622 次

Java的BufferedReader 问题 求解-求高手帮助!在此谢谢!

最近做在线评判程序的系统
P是exec调用gcc编译的c程序进程.
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())) ;
String temp =null;
while ((temp = br.readLine()) != null)
{   output += (temp + "\n") ;
}
问题是如果这个C语言程序是一个无限循环pintf("2");

在br.readLine()接收程序返回值的时候,, 就会乱码.但是这个错误还不能用try捕捉到.

用read()方法也试过了.也不能处理这个问题.
求高手帮助!在此谢谢!
java??c程序 GCC 乱码

------解决方案--------------------
你那个文件是什么格式写入的?
如果是UTF-8格式写入的文件,那么在java里面你就要转成UTF-8或者以UTF-8格式去读。
这个并不是异常信息,当然不会捕捉到了。
------解决方案--------------------
new InputStreamReader(p.getInputStream(),"utf-8")
------解决方案--------------------
 用InputStreamReader 

  StringBuffer ss = new StringBuffer("");     
                   InputStreamReaderisr = null;
           InputStream in = p.getInputStream()
           in =p.getInputStream();
isr = new InputStreamReader(in,"UTF-8");
int a = 0;
char[] c = new char[1024];
a = isr.read(c);
while(a!=-1){
ss.append(new String(c,0,a));
a = isr.read(c);
}