已采纳回答 / 勇敢的心9
以下仅供参考,只是个人的理解,我也是新手:输入输出流:最原始的方法,按字节读取;相当于打印机打印文章时:一个字一个字打印。数据输入输出流:在输入输出流的基础上进行了简单的封装(处理),可以按照数据基本类型读取,例如打印机打印文章:一个词语,或者成语,或者直接打印一句话,而不是一个字;缓冲流:进一步封装,憋满大招再放,像打印机一次性打印一篇文章,或者一个段落。
2016-10-30
已采纳回答 / 小凡先森
简单点说,原来开辟空间之后输入的buf是Byte型,只有8位。现在要用Integer.toHexString把int型转化成字符型,这个函数括号里输入的一定要是int型也就是32位;为了不发生错误,就先用位与&把Byte型(只有8位)前面的24位全都变成0(比如:byte数据1011 1011&1111 1111 1111 1111....,按位运算,高位不足补0,1&1=1,1&0=0,0&0=0)。打个比方就是:8个乒乓球(byte数据)放到长度为32的筒状盒子...
2016-10-30
最新回答 / 银鸽
while 是循环,while(i++%10==0)条件成立时它会执一次i增值,到下一次外的的哪个读文件循环再来断定的时候,i已经增加到10到.其实我们只打印了9次. 可能最一行是对的。if 条件断定,它这会再执一次i增值.
2016-10-30
已采纳回答 / 歌者休
老师的解释:(1)认识文本和文本文件java的文本(char)是16位无符号整数,是字符的unicoid编码(双字节编码)文件是byte byte byte 的数据序列文本文件是文本(char)序列按照某种(utf-8,utf-16be,gdk)序列化为byte的存储结果
2016-10-26
已采纳回答 / 慕运维6388425
我想,括号里面的buy应该是字节数组的意思。这只是两个不同的write方法。并没有想象的那么复杂前者:write(buy),意味着字节数组buy中的数据被全部写入了流所指向的文件里后者:write(buy,0,buy.length),以为着从这个字节数组的第0个位置(就是第一个开始写)开始,到第buy.length个位置结束,这中的内容写入write所指向的文件里。buy.length则是buy这个字节数组的长度,而那个0所代表的位置也可以被其他数字取代来代表不同的位置
2016-10-25
已采纳回答 / 青山洞主
大文件的情况下:应该是BufferedOutputStream效率最高,RandomAccessFile可以随机访问文件位置,效率上应该没有Buffered高,接着的DataOutputStream和FileOutputStream应该差不多,不过DataOutputStream进行了一些封装,可以直接处理基本类型数据,DataOutputStream要略优于FileOutputStream,FileOutputStream是最原始的了,直接对文件操作,写入字节数据。小文件的话:几 K的那种,其实你用哪个...
2016-10-24