黑马程序员技术交流社区

标题: 有关文本文件读取出想的现象的疑问 [打印本页]

作者: 燕国庆    时间: 2012-11-24 15:14
标题: 有关文本文件读取出想的现象的疑问
本帖最后由 燕国庆 于 2012-11-24 15:16 编辑

import java.io.*;
class FileReaderDemo1
{
public static void main(String[] args)
{
  FileReader fr=null;
  try
  {
   fr=new FileReader("Demo1.txt");
   
   int ch=0;
   while((ch=fr.read())!=-1)
    System.out.println("ch="+(char)ch); //为什么而输出时会是图片的那样的结果那
  }
  catch (IOException e)
  {
   System.out.println(e.toString());
  }
  finally
  {
   try
   {
    if (fr!=null)
    {
     fr.close();
    }
   }
   catch (IOException e)
   {
    System.out.println(e.toString());
   }
  }
}
}


Demo1.txt:
ha      //此行有一个回车键
ab

QQ截图20121124150651.png (1.2 KB, 下载次数: 34)

QQ截图20121124150651.png

作者: 灵感    时间: 2012-11-24 16:56
本帖最后由 严学韦 于 2012-11-24 17:00 编辑
  1. package LianXi;

  2. public class Out{
  3. public static void main(String[] args) {
  4. System.out.print("ch1="+'\n');
  5. System.out.print("ch2="+'\r');
  6. }

  7. }
复制代码

结果.jpg (1.66 KB, 下载次数: 28)

结果.jpg

作者: 燕国庆    时间: 2012-11-24 21:52
本帖最后由 燕国庆 于 2012-11-24 21:57 编辑
严学韦 发表于 2012-11-24 16:56


为什么在打印完
ch=
ch=
//在此中间问什么会有两个空行

ch=a
ch=b





class TestDemo      //这个例子在DOS命令行里根本不会打印出你那样的结果,这可能跟所用的软件有关系吧
{
public static void main(String[] args)
{
  System.out.print("ch1="+"\r");
  System.out.print("ch2="+"\n");
}
}

作者: 杨卫腾    时间: 2012-11-24 22:06
二楼那个哥们都不是说了吗?

你的那个文件中:
ha
ab
有个回车键  就是'\r\n' 这是在window系统中指定的回车换行符号
不然怎么知道这一样字符读完了
看看这个结果就了然
  1. class Demo5
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 System.out.println("ch="+(int)'\r');
  6.                 System.out.println("ch="+(int)'\n');
  7.         }
  8. }
复制代码

作者: 燕国庆    时间: 2012-11-25 08:43
有的时候希望大家能亲身验证一下,可能不同的编辑软件会有不同的显示结果,利用Editplus和DOS命令窗口,与Myeclipse,显示的结果就是不同




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2