已采纳回答 / 我是菁粉
老师讲解时,都是实例化子类对象的,因为子类对象已经实例化过的,所以不会报错,如果此时直接对没有序列化的父类对象进行对象的文件存储与读取操作、网络传输时均会报错的。
2017-01-07
已采纳回答 / 头发多
copyFileByBuffer这里是一个字节一个字节读的--->(c=bis.read())!=-1,并非批量,应将它与copyFileByByte的速度相比,是快的。如果copyFileByBuffer使用字节数组读取--->(b=in.read(buf, 0, buf.length))!=-1,那么会比同样使用字节数组批量读取的copyFile快。
2017-01-06
最赞回答 / XJ_倾注你的泪
BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的缓冲字符输入流。 BufferedReader(Reader in,
int sz) 创建一个使用指定大小输入缓冲区的缓冲字符输入流。 这是它的两种构造器
2017-01-06
我觉得这里老师漏了一点没讲清楚,while循环的作用是用来解决“缓冲buf的值设置得太小,in里面的东西放不下需要重复利用该buf”的这个问题。加上while之后可以确保整个超大的in用一个偏小的buf也能够读完,至于-1那是判断是否结尾,老师太笼统过去了,我也是百度了几篇才想清楚
2017-01-06
已采纳回答 / 邓孤思
byte b = -13;System.out.println(Integer.toHexString(b));// fffffff3 System.out.println(Integer.toHexString(b & 0xff));// f3
2017-01-05
已采纳回答 / Manny2011
如果文件很小,你申请的容量8*1024个byte的数组就已经可以完全装下,很显然那么第一次读就一下把文件读完了;如果文件很大,你申请的容量一次读取装不完时,那就会有下一次读取,直到读到文件的末尾,此时返回-1,就跳出循环了;read(buf,0,buf.length)意思是一次最多读取的字节数不超过8*1024,即<=8*1024.看一下这个方法的官方文档解释,你就会更加明白了. *Reads up to <code>len</code> bytes of data ...
2017-01-05
@leowei PrinterWriter构造方法中的一个参数就是boolean autoFlush,就是为也将缓冲区的内容立即写入到文件中或者打印出来,所以从这一点就可以判断它也是带缓存性质的.
2017-01-04
已采纳回答 / Manny2011
还是数据编码及存储的原理还没有搞清楚.^_^ 首先,我们用键盘写文件时,是以输入码进行输入的,比如拼音类的输入法,或者是五笔字形输入法,输入之后,它会把你要输入进去的字符保存成机内码,也就是0 1所组成的机内码,因为计算机只认识这种01 编码的二进制码. 当然对西方字符的话,相对字符少,最常用的ASCII编码规则(8*16的矩阵),已经可以涵盖所有的西文字符. 而对于中文字符,就复杂些,因为光汉字就有成千上万个,所以又需要另外一套编码规则,将所有这些中文字符涵盖进去,说白了,就是给每一个汉字附一个唯一的二...
2017-01-04
3分钟左右
IllegalArgumentException
参数错误,不合法异常
这里说的就是传入的File对象错误,或不合法
IllegalArgumentException
参数错误,不合法异常
这里说的就是传入的File对象错误,或不合法