今天编个小程序,一部分代码如下:BufferedReader is = new BufferedReader( new FileReader("data.txt") );
String str = is.readLine();
System.ou.println(str);
data.txt:
5
3 2 1
....5在已经被读过了,读第二行时,结果str只有 "3 2"
这是怎么回事?

解决方案 »

  1.   

    很简单public class IOtest
    {
      public static void main(String args[])
      {
         try
         {
             BufferedReader is = new BufferedReader( new FileReader("C:/data.txt") );
             String str;
             while((str=is.readLine())!=null)
             {
                 System.out.println(str);
             }
          }
          catch(IOException ex){}
    }
    如何换成 new BufferedReader(new InputStreamReader(System.in))
    用键盘输入就一点问题都没有。
      

  2.   

    没有问题啊package com.test.t0916;import java.io.BufferedReader;
    import java.io.FileReader;
    import java.io.IOException;public class Test2 {
    public static void main(String args[]) {
    try {
    BufferedReader is = new BufferedReader(
    new FileReader("D:/data.txt"));
    String str;
    while ((str = is.readLine()) != null) {
    System.out.println(str);
    }
    } catch (IOException ex) {
    }
    }
    }
      

  3.   

    奇怪。。
    那java里怎么样才能做到像C那样的输入输出呢?刚刚学java,对java的输入输出很不适应啊。
      

  4.   


    其实C语言里面的输入输出也是一种流 你看 stdio.h  其实也是一种io 你分开来看 std io.h!
      

  5.   

    文件读写完了要关闭
    is.close();
      

  6.   

    要flush()的,关闭会自动flush().
      

  7.   

        java中的流一般都需要关闭的。记得哦。
      

  8.   

    读写IO流打印出来。。更你的文件的字符集有关系 。 和你读取的时候是采用什么字符集读取也有关系
      你如果还有这个问题  你试着把文件 和读取方式 都设置为 UTF-8 看看