问个java生成创建文件的问题(问题解决一半了,但又出现新问题了)
请问如何将java 中println生成的内容复制创建到一个文件里?没接触过java,谢谢$汗$可以生成文件存放println中的内容了,但问题是System.setOut(out)只截取一次控制台中的内容,只循环了一遍就中止了,有什么方法可以解决这个问题么....
try{
File test = new File("e:\\test.txt");
PrintStream out = new PrintStream(new FileOutputStream(test));
//System.setOut(out);
System.out.println( "case:");
System.out.println( token.getToken().toCharArray());
System.out.println("---------------------------------");
Enumeration en = h.keys();
while(en.hasMoreElements())
{
Object o = en.nextElement();
System.out.println("Char " + o + " Jump " + h.get(o) );
}
System.out.println("---------------------------------");
}
catch(Exception e){}
[ 本帖最后由 drach 于 2007-11-23 16:29 编辑 ] common log or log4j 如果我没有理解错误,你可以在Konsole启动的时候加上这个(main()在Test.java里):
java Test > Log.txt
就会把所有显示出来的字写到Log.txt了。如果要写到一个其它的文件夹也可以直接用Path比如 C:\Log\MeinLog.txt等等。 谢谢大家
主要是要把console的信息输出到文件里面 原帖由 康猪 于 2007-11-22 21:50 发表 http://www.dolc.de/forum/images/common/back.gif
common log or log4j
这个要自己修改log4j $考虑$ 原帖由 ─壶酒 于 2007-11-23 00:44 发表 http://www.dolc.de/forum/images/common/back.gif
或者可以参考System.setOut(PrintStream out) 方法。
能详细说明下么,比如如何把println()输出的内容存到文件里$汗$ 啥叫只循环了一遍就中止了??catch(Exception e){}有没有发生异常,如果有stacktrace是什么?还是文件本身结束了,还是....$考虑$ , 问题先要说清楚. 原帖由 renzaijianghu 于 2007-11-24 11:41 发表 http://www.dolc.de/forum/images/common/back.gif
啥叫只循环了一遍就中止了??catch(Exception e){}有没有发生异常,如果有stacktrace是什么?还是文件本身结束了,还是....$考虑$ , 问题先要说清楚.
下面那个println是循环打印一组数据,这组数据和hashtabel的key关联,try catch没啥问题,只要注释掉system.setOut后程序就能正常运行了,如果加上system.setOut,让它截取数据流打印到文件上,下面的println就只显示第一组数据 我觉得turtles
的命令挺好啊,难道一定要java 不需要写代码
而且还可以追加
>>log.txt "如果加上system.setOut,让它截取数据流打印到文件上,下面的println就只显示第一组数据"$考虑$ ,你首先要明白,不管输出到什么地方,只要没出现异常,原来要输出的肯定还能正常输出, 要不就是输出到文件,要不就是到屏幕, 只显示一组,你必须打印堆栈,不能 catch(Exception e){},象你这样,显然只能得到"try catch没啥问题"的结论. 我说的只不过是分析问题的一般方法,实际跟java没太大关系. 原帖由 康猪 于 2007-11-24 14:10 发表 http://www.dolc.de/forum/images/common/back.gif
不需要写代码
而且还可以追加
>>log.txt 对阿,也建议LZ用这个,我在上面也提过。 原帖由 turtles 于 2007-11-24 15:45 发表 http://www.dolc.de/forum/images/common/back.gif
对阿,也建议LZ用这个,我在上面也提过。
我说地就是你的办法呀:D 原帖由 康猪 于 2007-11-24 15:47 发表 http://www.dolc.de/forum/images/common/back.gif
我说地就是你的办法呀:D 是阿:D 不过还是有一点点区别的。我用>log.txt,你用 >>log.txt
>log.txt: 把老的删除,全部重新写
>>log.txt: 继续用一个文件,保存下来以前的内容 是直接加一句 >>log.txt 么,不过这个命令是输出日志吧,我只要特定的consel里面的显示结果 对阿,就在konsole那里加上 >log.txt 或者 >>log.txt就可以了。然后在这个文件里只有显示结果没有其他的。另外在konsole会没有显示结果了。
最好你试一下看看效果怎么样。普通的>log.txt就好了。 konsole里怎么加·? 比如你启动一个Java的Programm叫 HelloWorld.
那你就写 java HelloWorld > log.txt 就行了。
比如你在这个文件夹jboss (C:\jboss)写上面这个,那个log.txt也会存到这个文件夹。
如果要存到其他的地方你可以直接写 全部的Path比如 C:\MeineLogDaten\log.txt等等,不要只写log.txt。 原帖由 turtles 于 2007-11-24 19:40 发表 http://www.dolc.de/forum/images/common/back.gif
比如你启动一个Java的Programm叫 HelloWorld.
那你就写 java HelloWorld > log.txt 就行了。
比如你在这个文件夹jboss (C:\jboss)写上面这个,那个log.txt也会存到这个文件夹。
如果要存到其他的地方你 ...
还能这样用$考虑$ 不需要声明什么包么
还有能否同时再显示内容到console上$frage$ 同时显示是可以的,不过比较麻烦。
我自己没有试过,所以也不清楚。 那就用tee命令 turtles 你地毛呢? 原帖由 康猪 于 2007-11-24 23:26 发表 http://www.dolc.de/forum/images/common/back.gif
turtles 你地毛呢? 地毛?什么意思啊,我中文不好..$frage$
回复 #24 turtles 的帖子
你的头发啊胡子啊,本来很帅啊,现在光溜溜的了:D 原帖由 康猪 于 2007-11-25 01:31 发表 http://www.dolc.de/forum/images/common/back.gif你的头发啊胡子啊,本来很帅啊,现在光溜溜的了:D 哦,我自己换得。一共有14个猪,自己可以免费改阿,哈哈。那个比较适合老外阿,还有我也没有这个老,最少我的心里的年龄还没有这个大:)
看来我还是换回去好,哈哈。 有点毛发比较有性格:D 我在这里论坛看到很多这样不同的猪脑袋,可能就是这个系列把。满有趣的:) 我加了这一句,但显示错误啊,是不是要加个log4j的包$考虑$
java JumpTableEntry > e:\log.txt ; 确定程序编译
确定运行时classpath设置好了
确定程序运行显示想要的结果
然后
如果要单纯把标准输出存入文件
java JumpTableEntry > e:\log.txt ;
如果既要存入文件又要显示在输出上
java JumpTableEntry | tee e:\log.txt;
管道,重定向在windows cmd上和linux shell上都能用,不存在命令问题
检查java程序! 我用的eclispe,总是显示syntax error......
页:
[1]
2