把屏幕输出重定向到文本的问题——中间改成不同的文件(解决马上结贴)
hahu 2005-02-17 09:12:46 我的屏幕输出内容比较多
如果不断输出到同一个文件的话,会出现文件过大,打开都困难
于是考虑文件大小超过多大的时候重定向到别的文件
现在出现这样的问题,有时候重定向以后,不知道出了什么问题,重新定向的文件中无法获取输出
因为用JNI在C++中调用,出了什么错也不知道
public class OutputHelper {
private static PrintStream err = null;
private static PrintStream out = null;
private static PrintStream prtStream = null;
private OutputHelper() {
}
public static void redirectToFile(String errFileName) throws IOException {
if (err == null)
{
err = System.err;
out = System.out;
}
FileOutputStream errFile = new FileOutputStream(errFileName);
prtStream=new PrintStream(errFile);
System.setOut(prtStream);
System.setErr(prtStream);
}
public static boolean resetPrintStream() {
if (err != null && out != null)
{
System.setOut(out);
System.setErr(err);
}
if (prtStream != null)
{
prtStream.close();
prtStream = null;
}
return true;
}
}
调用的时候,最开始redirectToFile("a.txt")
文件超过2M时,resetPrintStream() 将a.txt改成其他名字,再redirectToFile("a.txt")
解决马上结贴