FileStream fs = new FileStream(); //ByteStreamReader
String source = "./test_zh.txt";
CharacterStream cs = new CharacterStream(); //CharacterStreamReader
System.out.println("\nChinese Sentence using ByteStreamReader");
fs.printOnConsole(source); //if i comment this, then below lines gets printed
System.out.println("\nChinese Sentence using CharacterStreamReader");//Not getting printed on console
cs.printOnConsole(source); //Not getting printed on console
这两种流类型的代码如下所示:
public void printOnConsole(String source) throws IOException{
try{
inp = new FileInputStream(source);
pwr = new PrintWriter(System.out,true);
int c =0;
while( (c = inp.read()) != -1){
pwr.write(c);
pwr.write("(" + c +")");
}
}catch(FileNotFoundException f){
}catch(IOException e){
}finally{
inp.close();
pwr.flush();
pwr.close();
}
}
public void printOnConsole(String source) throws IOException{
try{
fReader = new FileReader(source);
pwr = new PrintWriter(System.out,true);
int c;
while((c = fReader.read()) != -1){
pwr.write(c);
pwr.write("(" +c +")");
}
}catch(IOException f){
}finally{
fReader.close();
pwr.flush();
pwr.close();
}
}
我可以看到FileStream
和CharacterStream
类存在两个重要问题。
>
这两个类都对包装system.out
的printwriter
调用close()
。当发生这种情况时,system.out
将被关闭,并且不允许对其进行进一步的写操作。
这两个类都压制IO异常。也就是说,他们捕捉到异常,什么也不说,然后继续,就像什么都没发生一样。这是非常糟糕的编码实践...而且它很可能隐藏了在写入关闭的system.out
流时发生的异常。
问题内容: 在阅读有关Java I / O的知识时,我意识到可以通过两种方式写入标准输出。 以下是同时使用这两种技术的代码段 相对于其他使用,是否有任何性能优势? 问题答案: 一个快速的Google透露了Coderanch上的一个线程很有用。 还有其他几种进行控制台编写的方法,但是除了编写更少的代码外,使用一种或另一种似乎没有真正的好处,而且创建新的PrintWriter对象最终会占用更多的内存。
终端: $java Display 1 2 线程“main”java.lang.BootStrapMethoder中出现异常错误:java.lang.NoClassDeffounder错误:java.lang/invoke/StringConcatFactory 在Display.main(Display.java:7) 原因:java.lang.NoClassDeffounder错误:java.
我正在使用它工作得很好,过了一段时间后它就不能工作了,特别是在设备启动后它不能启动了。我已经给出了listner所需的所有权限,这里是我的代码。 这是正常工作的,但经过一段时间和引导完成后,is不工作,我使用启动,但它仍然不工作
问题内容: 这些陈述有什么区别吗 和 问题答案: 已经是, 只会再包装一次,这似乎毫无意义。
最简单的Java程序是helloWorld。只有一个类、一个主函数和一条语句:System。出来println(“你好世界”); 在Eclipse氧气中输入该程序。3A作为一个Java项目,在一个名为helloWorld的包中,在一个名为App的类中,运行在Java 1.8上。 在Eclipse中运行良好,我可以在Eclipse控制台窗口中看到Hello world。在cmd窗口中以java he
我尝试了以下各种组合: 在ap有效载荷中传递了一个空警报 一个空的声音通过ap有效载荷 content_available:真 内容可用: 1 优先级设置为高。我的目标功能在后台模式中启用了后台抓取和远程通知。 这是我的有效载荷的样子: 我一打开应用程序,通知就会进来,但不是在后台。 看起来是这样的: [AnyHasable("body"): NTCIP示例单元:现在显示WALNUT TREE(T