首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

?请教打印在屏幕上和文件中为什么结果不同呢

2012-04-23 
?请问打印在屏幕上和文件中为什么结果不同呢且看下面的代码,打印在屏幕上中文无法显示很正常,但是为什么打

?请问打印在屏幕上和文件中为什么结果不同呢
且看下面的代码,打印在屏幕上中文无法显示很正常,但是为什么打印到文件中就正常了呢?

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类库的源码,如果还有困惑,我们再讨论吧。
[解决办法]
这个其实还是编码问题。
[解决办法]
探讨

引用:
这个问题我先告诉你一个方法:将System.out.print((char)b);
换成System.out.write(b);没问题了吧?
至于理由嘛,你先参考下API文档以及java类库的源码,如果还有困惑,我们再讨论吧。
求具体原因,为啥会这样。out.write(b);写到文件不是也是一个一个的字节写进去的吗,为什么就正常呢?
……

[解决办法]
支持5楼
[解决办法]
我感觉应该是System.out.print认为是一个字符就打印,而System.out.write是把整个字节写入流中,然后打印

热点排行