?请教打印在屏幕上和文件中为什么结果不同呢
?请问打印在屏幕上和文件中为什么结果不同呢
且看下面的代码,打印在屏幕上中文无法显示很正常,但是为什么打印到文件中就正常了呢?
------解决方案--------------------
这个问题我先告诉你一个方法:将System.out.print((char)b);
换成System.out.write(b);没问题了吧?
至于理由嘛,你先参考下API文档以及java类库的源码,如果还有困惑,我们再讨论吧。
------解决方案--------------------
这个其实还是编码问题。
------解决方案--------------------
------解决方案--------------------
支持5楼
------解决方案--------------------
我感觉应该是System.out.print认为是一个字符就打印,而System.out.write是把整个字节写入流中,然后打印
且看下面的代码,打印在屏幕上中文无法显示很正常,但是为什么打印到文件中就正常了呢?
- Java code
import java.io.*; public class TestFileOutPutStream { public static void main(String[] args) { int b = 0; FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("j:/TestFileOutPutStream.java"); out = new FileOutputStream("j:/TestFileCopy.java"); while((b=in.read())!=-1) { //out.write(b); System.out.print((char)b); } in.close(); out.close(); } catch(FileNotFoundException e) { System.out.println(" 找不到指定文件"); System.exit(-1); } catch(IOException e1) { System.out.println("文件复制错误"); System.exit(-1); } System.out.println("文件已复制"); } }
------解决方案--------------------
这个问题我先告诉你一个方法:将System.out.print((char)b);
换成System.out.write(b);没问题了吧?
至于理由嘛,你先参考下API文档以及java类库的源码,如果还有困惑,我们再讨论吧。
------解决方案--------------------
这个其实还是编码问题。
------解决方案--------------------
------解决方案--------------------
支持5楼
------解决方案--------------------
我感觉应该是System.out.print认为是一个字符就打印,而System.out.write是把整个字节写入流中,然后打印