jjzjj

printstream

全部标签

java - 未引用的方法是否包含在最终的可执行文件中?

在不运行ProGuard的情况下在Android上构建和部署可执行文件时,最终可执行文件中是否包含未引用的方法?是否也包含来自外部库jar的未引用方法?此行为是否取决于Java编译器,或者dex是否会进行所有修整(如果有)? 最佳答案 我用一个简单的类进行了测试(所有这些方法都未被引用):publicclassTest{privatevoidprivateMethod(){System.out.println("private");}protectedvoidprotectedMethod(){System.out.println(

java - System.out.println 与 PrintWriter

这两个有区别吗?你什么时候会用一个而不是另一个?System.out.println(result);对比PrintWriterout=newPrintWriter(System.out);out.println(result);out.flush(); 最佳答案 主要区别在于System.out是PrintStream另一个是PrintWriter.本质上,PrintStream应该用于写入字节流,而PrintWriter应该用于写入字符流(因此它处理字符编码等)。对于大多数用例,没有区别。

java - 在 Java 中将 StreamWriter 转换为 OutputStream?

我正在尝试使用System.setOut将System.out重定向到一个字符串,它需要一个PrintStream。有什么方法可以将StringWriter转换为Stream以便我可以将它传递给setOut? 最佳答案 你不能完全那样做,因为StringWriter是一个Writer,而不是一个Stream。但你可以这样做://createaByteArraystream,whichwillbewrappedbyaPrintStreamByteArrayOutputStreambaos=newByteArrayOutputStrea

java - "Turn off"输出流

我正在使用一个任性的库,不幸的是,它会将信息打印到System.out(或偶尔打印到System.err)。防止这种情况的最简单方法是什么?我一直在考虑创建一个输出流到内存,在每次调用其中一个麻烦方法之前替换System.out和err,稍后恢复它们,并忽略创建流的缓冲区。有没有更简单、更优雅的方法?编辑:我不想重定向所有输出-这很容易实现。我只想忽略某些库调用可能生成的输出。 最佳答案 我最终做了类似的事情:PrintStreamout=System.out;System.setOut(newPrintStream(newOutp

java - 将 System.out 重定向到 JavaFX 中的 TextArea

更新:仍然有同样的问题,修改了主要应用程序代码的源代码:http://pastebin.com/fLCwuMVqCoreTest中一定有什么东西阻塞了UI,但它做了各种各样的事情(异步xmlrpc请求、异步http请求、文件io等),我试着把它全部放到runLater但它没有帮助。更新2:我验证了代码运行并正确生成输出,但UI组件无法设法显示它很长时间更新3:好的,我修好了。我不知道为什么,但没有关于JavaFX的指南说过这一点,而且它非常重要:始终将您的程序逻辑放在与JavaFX线程不同的线程中我曾在Swing的JTextArea上使用它,但由于某些原因它不适用于JavaFX。我尝试

java - Findbugs 给出 "Null pointer dereference of System.out",为什么?

我正在使用Java1.7、Eclipse3.7以及来自市场的FindBugs插件。范例美如天堂:classApplication{publicstaticvoidmain(String[]args){System.out.println("Bla");}}此消息过去不存在,内部实现始终在系统中:publicfinalstaticPrintStreamout=null;所以Findbugs是正确的,但是现在出现的消息有什么变化吗? 最佳答案 因为在java6中它看起来像这样:publicfinalstaticPrintStreamou

java - 为什么我们不使用后关闭 `System.out` Stream 呢?

我只是想知道,我们通常在最后关闭流,但是为什么不使用System.out.close()关闭System.outPrintStream? 最佳答案 如果您关闭它,您将无法再写入控制台,因此让我们在进程终止时将此任务留给VM。您应该只关闭您拥有或手动创建的流。System.out不在你的控制范围内,所以留给创建者来处理吧。 关于java-为什么我们不使用后关闭`System.out`Stream呢?,我们在StackOverflow上找到一个类似的问题: htt

java - 为什么我们不使用后关闭 `System.out` Stream 呢?

我只是想知道,我们通常在最后关闭流,但是为什么不使用System.out.close()关闭System.outPrintStream? 最佳答案 如果您关闭它,您将无法再写入控制台,因此让我们在进程终止时将此任务留给VM。您应该只关闭您拥有或手动创建的流。System.out不在你的控制范围内,所以留给创建者来处理吧。 关于java-为什么我们不使用后关闭`System.out`Stream呢?,我们在StackOverflow上找到一个类似的问题: htt

java - 为什么 Java 编译器复制 finally block ?

当使用简单的try/finallyblock编译以下代码时,Java编译器会生成以下输出(在ASM字节码查看器中查看):代码:try{System.out.println("Attemptingtodividebyzero...");System.out.println(1/0);}finally{System.out.println("Finally...");}字节码:TRYCATCHBLOCKL0L1L1L0LINENUMBER10L0GETSTATICjava/lang/System.out:Ljava/io/PrintStream;LDC"Attemptingtodivide

java - 为什么 Java 编译器复制 finally block ?

当使用简单的try/finallyblock编译以下代码时,Java编译器会生成以下输出(在ASM字节码查看器中查看):代码:try{System.out.println("Attemptingtodividebyzero...");System.out.println(1/0);}finally{System.out.println("Finally...");}字节码:TRYCATCHBLOCKL0L1L1L0LINENUMBER10L0GETSTATICjava/lang/System.out:Ljava/io/PrintStream;LDC"Attemptingtodivide