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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 影响力147753321 高级黑马   /  2013-5-2 10:01  /  1989 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

java流中的读和写怎么理解?什么是读到一个数组中。又怎么写到一个数组中。到底在内存中是个什么情况?大家是怎么理解的。求教?

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

9 个回复

倒序浏览
我的理解是读到数组中就是数组创建了一个堆内存区域,将流中的数据保存到这片堆内存区域中等待进一步操作使用。
写到数组中也一样,把数据保存到堆内存区域中。读写数组一般用于缓存数据

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
吴传淦 发表于 2013-5-2 10:10
我的理解是读到数组中就是数组创建了一个堆内存区域,将流中的数据保存到这片堆内存区域中等待进一步操作使 ...

那么读写时建立的数组怎么是一个呢?应该是读对应一个。写对应一个呀!
回复 使用道具 举报
影响力147753321 发表于 2013-5-2 10:30
那么读写时建立的数组怎么是一个呢?应该是读对应一个。写对应一个呀! ...

写的时候,假如将数据直接写到文件的话。读写就共同操作一个数组的这片内存区域了
回复 使用道具 举报
读,就是將数据输入到内存中,字符流中的Reader就类似于字节流中的InputStream;
写,就是將数据由内存中输出,字符流中的Writer就类似于字节流中的OutputStream。

个人理解为:读和写其实就是输入输出的一种形象的说法,内存就是于执行读写的人。

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
回复 使用道具 举报
影响力147753321 发表于 2013-5-2 10:30
那么读写时建立的数组怎么是一个呢?应该是读对应一个。写对应一个呀! ...

是这样的,我们在进行读写操作时,输入流、输出流之间本来是没有直接关系的,而你建立的数组就是连接输入、输出流的桥梁。
具体操作时,先把输入流的数据“读入”到数组中(也就是内存中),然后再用输出流将该数组的数据“写出”到目的地。
其实,你建立的数组就是一个数据的中转站,之所以需要这个中转站,是因为输入、输出流没办法直接沟通。
关于读和写概念的理解,看一下楼上“郑雪”同学的解释吧,说的挺清楚的。
回复 使用道具 举报
// 楼主可以看看代码来理解一下

static void Main(string[] args)
        {
            Console.WriteLine("请输入要读取文件的文件名,包括路径");
            string path = Console.ReadLine();//读取路径
            if (!File.Exists(path))//判断路径是否存在
            {
                Console.WriteLine("文件不存在");
                return;
            }
            FileStream readStream = new FileStream(path,FileMode.Open);//根据读入的模式。以Open方式打开来创建一个文件流对象
            BufferedStream readBuffered = new BufferedStream(readStream);//根据穿件的文件流来创建一个缓冲流对象
            byte[] bt = new byte[readBuffered.Length];//以字节流形式进行读入
            readBuffered.Read(bt, 0, (int)readBuffered.Length);//调用缓冲流对象的Read方法将字节流读入缓冲流对象

            Console.WriteLine(Encoding.Default.GetString(bt));//在控制台进行编码输出
            readBuffered.Close();//关闭缓冲流
            Console.ReadLine();
        }

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
郑雪 发表于 2013-5-2 10:44
读,就是將数据输入到内存中,字符流中的Reader就类似于字节流中的InputStream;
写,就是將数据由内存中输 ...

内存就是执行读写的人。很精辟。也就是输入和输出相对于内存。流进入内存就是读。流出了内存就是写。可以这样说吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马