关于wirte和read方法的疑问

关于wirte和read方法的疑问

我想请问老师为啥子要读一个写一个,不能一次性读完,一次性写入吗??,而且一个图片存入电脑中是以什么方式存储的,你读一个是读多少字节?而且凭啥子以前的都能将byte字节1024大小都能占满?

正在回答

登陆购买课程后可参与讨论,去登陆

3回答

同学你好,


首先byte数组的大小为1024,所以,每次读取图片以及写入时都是以1024个字节为单位的。

不是读一个写一个哦~

http://img1.sycdn.imooc.com//climg/5d2d32b60001338305000183.jpg


一张图片存入电脑是以字节存储,具体多少个字节存储是不确定的~

在进行读取写入操作时,io流占用内存,所以是不建议一次性读取图片的全部内容的~


例如,一张图片占用5620个字节。

我们每次读取写入1024个细节,当我们读取5次时,也就是读取了1024*5=5120个字节,剩下5620-5120=500字节,这时,再进行读取写入操作时,byte数组的空间只占用500个,而不是1024个了呢~


如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 慕运维lh 提问者 #1
    我在byte数组中定义长度为50,然后输出的结果和定义1024结果希望,这如何解释呢
    2019-07-16 11:08:34
  • 好帮手慕小班 回复 提问者 慕运维lh #2
    同学你好,老师在上面的回答中回复了这个问题了! 继续加油!祝:学习愉快~
    2019-07-16 16:58:50
  • 慕运维lh 提问者 #3
    我还有两个问题:1、数组byte大小是1024指的是数组的长度吗?2、读取遍历一次byte数组相当于读取了1024个字节,那第二次读取为什么是继续读取呢?而不是又从头开始读取呢
    2019-07-16 21:10:14
提问者 慕运维lh 2019-07-16 21:02:12

http://img1.sycdn.imooc.com//climg/5d2dcaaf0001aef706750424.jpg

我这个程序并没有使用i变量哈。但是结果也能达到一样的效果哈

  • 同学很棒哦,已经可以根据思路来对应练习代码了,只是这里的变量i只是老师为了展示循环执行了几次,并没有实际意义的哦! 继续加油!祝:学习愉快~
    2019-07-17 11:11:49
好帮手慕小班 2019-07-16 16:58:04

        同学你好,这里定义的byte数组长度为50和长度为1024的运行方式是一样的,长度为50的数组,在进行读写操作时,会多运行几次哦,比如:

byte数组为1024的时候,会循环如下次数,将文件读取完

http://img1.sycdn.imooc.com//climg/5d2d90ef0001579d08400493.jpg

byte数组为50的时候,会循环如下次数,将文件读取完

http://img1.sycdn.imooc.com//climg/5d2d9152000185db08600502.jpg

同样的运行方法,数组长度小,就多循环几次哦!结果是相同的哦!

        如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师