A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 何明辉 中级黑马   /  2012-8-4 08:42  /  2501 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 何明辉 于 2012-8-5 12:01 编辑

import java.io.*;
class IODemo
{
public static void main(String[] args)throws IOException
{
  FileInputStream in=new FileInputStream("c:\\222.asm");
  FileOutputStream out=new FileOutputStream("c:\\555.text");
  int ch;
  while((ch=in.read())!=-1)
  {
   if(ch=='\n')
    System.out.println();
   System.out.print((char)ch);//将程序打印在控制台上
   out.write(ch);//将程序打印在c盘的文件中
  }
  in.close();
  out.close();
}
}
上面的程序都是通过read()方法读取一个字节,然后分别显示在控制台和文件上。但是为什么有时候显示的不一样,特别是当源文件中有汉字字符时,就显示的不一样,为什么?

2 个回复

倒序浏览
跟你的编码有关系,  有时候 UTF-8也会搞鬼...  
回复 使用道具 举报
不好意思啊 刚看错题目了, 我重新回答下吧, 因为你中文是占了2个字节 然 read()才读1个字节
所以就不能读取到中文了..  如果非要字节读取, 建议用 byte[]
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马