java 板


LINE

※ 引述《Maisky (McDummy)》之铭言: : 如果要用ObjectInputStream和ObjectOutputStream, 传的object就应该要 : 是Serializable. 而BufferedImage不是Serializable,所以 : ImageIO.write(BufferedImage, "png", ObjectOutputStream) 并没有说用 ObjectOutputStream 传的 object 就必须 Serializable。 正确的说法应该是, 透过 writeObject() 传出去的 object 才需要 Serializable。 ObjectOutputStream 用的是 Composition 的概念, 在他的内部其实是另一个 OutputStream, 当呼叫的 method 与 Object 的操作无关, ObjectOutputStream 就会直接把呼叫转给其内部的 OutputStream。 以 write(byte[]) 为例,source code 如下: public void write(byte[] buf) throws IOException { bout.write(buf, 0, buf.length, false); } // 其中 bout 就是 ObjectOutputStream 内部的 Stream ImageIO 跟 ObjectOutputStream 的 source 都有点复杂, 所以接下来我就直接推理了。 如果你有看完这串所有的讨论, 你应该会知道後来我们已经发现这个问题跟 ObjectOutputStream 无关, 即使是用 FileOutputStream 或 SocketOutputStream 也会有相同的问题, 并且我们已经找出问题并解决了。 如果如你所说,ImageIO 是用 Serializable 方式传送图片, 你要如何解释为什麽使用 FileOutputStream 没有问题? --- ImageIO 不是用 Serializable 在传资料的, 他是把 image,依照你所指定的 format (jpg, png, etc) 写成对应的 Image File, 所以用 ImageIO 把 image 写成档案後,你家的绘图软体才打得开。 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.160.117
1F:→ TonyQ:Composition? 这不是 Decoration 吗 ?XD 01/02 10:32
2F:→ tkcn:Decorated 的精神之一就是用 Composition 代替 Inheritance 01/02 10:57
3F:→ TonyQ:你在开玩笑吧 , 你翻翻API就看的到 ObjectOutputStrema有 01/02 11:07
4F:→ TonyQ:继承 OutputStream , 且被装饰者本就跟装饰者要同一继承体系 01/02 11:09
5F:→ TonyQ:怎麽会有「代替」继承这回事出现 , 这两者在这的性质不同啊. 01/02 11:11
6F:→ TonyQ:还是你在讲得是子类别延伸出去的继承树 XD 01/02 11:16
7F:→ TonyQ: *避免 01/02 11:18
8F:→ tkcn:他还是有利用到继承没错,但那是为了达成 setComponent的手段 01/02 11:25
9F:→ TonyQ:如果是要 setComponent , interface-implement 就ok了 XD 01/02 11:29
10F:→ tkcn:但是 OutputStream 里头有提供实作,我觉得这样做并没有问题 01/02 11:31
11F:→ TonyQ:觉得应是OutputStream要拿来作为被装饰的基底类别吧:3 01/02 11:31
12F:→ TonyQ:觉得虽然Composition可以解释 , 不过总觉得很别扭 XD 01/02 11:32
13F:→ tkcn:ttp://tinyurl.com/yfh8269 最後一段 01/02 11:33
14F:→ TonyQ:是说讲Composition 我总会想到 Composition Pattern . XDDD 01/02 11:37
15F:→ tkcn:http://tinyurl.com/yksyaza 这篇应该比较有说服力了 01/02 11:38
16F:→ Maisky:我说的是BufferedImage不是Serializable,所以才会有问题的 01/03 09:10
17F:→ Maisky:Only objects that support the java.io.Serializable 01/03 09:12
18F:→ Maisky:interface can be written to streams. 01/03 09:13
19F:→ Maisky:我并没说ImageIO 是用 Serializable 方式传送图片 01/03 09:21
20F:→ tkcn:ImageIO 是重新分析 Object 内容用对应 format byte 阵列传送 01/03 12:27
21F:→ tkcn:我不懂你现在到底想干嘛,证明你是对的? 01/03 12:29







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP