System.out.print("ok");
这条语句当然会把数据打印出来了为什么不把书好好看看呢,再试着写几个程序就明白了

解决方案 »

  1.   

    写过读取文件的程序么?读取流的时候,通常循环用一个缓冲区来读,比如长度为1024的ByteBuffer,就算文件很小 ,只有512,也会判断文件结尾的,就是说还是读满了一个buffer,只不过没有装满,然后输出。按照你的这种逻辑,当文件大小不是buffer的整数倍的时候,岂不是要等到下次对buffer操作在输出?显然是不可能的。
    System.out.print("ok");对程序员来说是一句语句,但编译完的东东已经够是几行了,这就是一个输出指令,不可能出现他的buffer还留着给下一条语句来执行再来输出
    自己试试个读取文件的程序大概就明白了个人理解,可能不是很准确 呵呵
      

  2.   

    不好意思,大家误解了我的意思,都怪我没说清楚,编程方面没问题,我只是想问一下:1,输入流是靠什麽来把数据送往缓冲区的?标准输入流是靠键入回车符,那文件流呢?是靠文件结束符EOF
      

  3.   

    误按了回车符,不好意思,重发:1,输入流是靠什麽来把数据送往输入缓冲区的?标准输入流是靠键入回车符,那文件流呢?是靠文件结束符EOF吗?还是靠流已填满?2,输出缓冲区是靠什麽将数据送往输出流的?不能只靠输出缓冲区满吧?标准输出流缓冲区和文件输出流缓冲区各靠什麽来刷新输出缓冲区?
      

  4.   

    Text that's written to a buffered writer is stored in the internal buffer and only written to the underlying writer when the buffer fills up or is flushed.terminator string: \n on Unix, \r on the Mac, \r\n on Windows.我觉得是两种情况,一种是遇到缓冲区满,另一种就是遇到结束符。
      

  5.   

    int i=1;
    while(i<10){
    System.out.println(i++);
    System.in.read();
    }
    自己看看就知道了,每测试,记得以前会发现缓冲区作祟的
      

  6.   

    1,输入流是靠什麽来把数据送往输入缓冲区的?标准输入流是靠键入回车符,那文件流呢?是靠文件结束符EOF吗?还是靠流已填满?2,输出缓冲区是靠什麽将数据送往输出流的?不能只靠输出缓冲区满吧?标准输出流缓冲区和文件输出流缓冲区各靠什麽来刷新输出缓冲区?