黑马程序员技术交流社区

标题: 新人小白,提一个关于IO流小细节的问题 [打印本页]

作者: sean    时间: 2014-9-17 16:18
标题: 新人小白,提一个关于IO流小细节的问题
注意:问题是黄色区域的字段:import java.io.*;

class FileWriterDemo
{
    public static void main(String[] args)throws IOException
    {
            //创建一个FileWriter对象,该对象一被初始化就必须要明确被操作的文件
            //而且该文件会被创建到指定的目录下.如果该目录下已有同名的文件,将被覆盖掉。
            //其实这个步骤就是在明确创建数据要存放的目的地。
            FileWriter fw = new FileWriter("g:\\ys\\demo.txt");
           
            //该步骤,调用writer方法,将字符串写入到流中。
            //运行这一步时,数据还没有被写到硬盘指定位置上的文件中。
            fw.write("abcde");

问题是:上面这句话对这段代码的理解,是标准正确的吗。


作者: sean    时间: 2014-9-17 16:22
大大们请帮忙看下。谢谢!
作者: sean    时间: 2014-9-17 16:29
在线等。
作者: lipc    时间: 2014-9-17 17:28
对啊,只有flush和close方法后才会写进去。。。
作者: lipc    时间: 2014-9-17 17:30
黑马io视频里有的。。。。   写完以后flush一下,才会下到文件里,不然要等缓冲区满了才会写进去,这样提高了效率。    close相当于先执行flush操作后,再关闭流。。。
作者: sean    时间: 2014-9-17 17:46
lipc 发表于 2014-9-17 17:30
黑马io视频里有的。。。。   写完以后flush一下,才会下到文件里,不然要等缓冲区满了才会写进去,这样提高 ...

不好意,我的问题描述得的不是很清楚,

我的意思是 运行到 fw.write("abcde");这一句时,数据具体是被写到“流中”(对这个“流中”还有更加具体的描述吗?)
作者: happymouse    时间: 2014-9-17 17:54
sean 发表于 2014-9-17 17:46
不好意,我的问题描述得的不是很清楚,

我的意思是 运行到 fw.write("abcde");这一句时,数据具体是被写 ...

个人认为你可以理解为写入流中就是写入内存(或缓冲区),close或flush都是把内存中的数据向文件里面写,只不过,close后就不能再写了,flush后还可以继续写入
作者: sean    时间: 2014-9-17 18:19
happymouse 发表于 2014-9-17 17:54
个人认为你可以理解为写入流中就是写入内存(或缓冲区),close或flush都是把内存中的数据向文件里面写,只 ...

谢谢!~
作者: 黑马-胡明    时间: 2014-9-17 18:38
是正确的。必须write,字符串才会被写入。你可以运行看一下,先注销掉 fw.write("abcde");看g:\\ys\\demo.txt
作者: sean    时间: 2014-9-17 19:05
黑马-胡明 发表于 2014-9-17 18:38
是正确的。必须write,字符串才会被写入。你可以运行看一下,先注销掉 fw.write("abcde");看g:\\ys\\demo.t ...

三克油!
作者: 夜半风    时间: 2014-9-17 19:14
对的吧  当关闭和刷新的时候才从流把数据写入到硬盘
作者: sean    时间: 2014-9-17 19:16
夜半风 发表于 2014-9-17 19:14
对的吧  当关闭和刷新的时候才从流把数据写入到硬盘

谢谢! 其实就是想知道 在关闭和刷新之前,这个所谓的将数据写入“流中”(对这个“流中”有没有更具体的描述)




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