已采纳回答 / 六月熊
UTF-8中,前面两个字符表示数据占用的字节数。eg: dos.writeUTF("中国中国"),运行结果前面两位就会为00 0c。即"中国中国"占用12个字节。还望采纳!
2016-09-11
已采纳回答 / 侧耳听
while ((b=fin.read())!=-1)判断的是fin.read()是否读到最后,而且每次判断都会重新给b赋值,这里主要是read()会一个一个往下读取。int b =fin.read();while(b!=-1)这里只给int b赋值一次,这里只判断b里面的值,如果b不等于-1不就一直打印一个嘛。
2016-09-08
已采纳回答 / 渴望飞翔的猪
你实现了Serializable接口,但没有为其指定ID?在代码里加上这段定义看看:private static final long serialVersionUID = -3286564461647015367L;
2016-09-05
已采纳回答 / IJN
本来Java的IO这块就比其它语言复杂,很多概念不是一下子就能懂,如果没理解这些概念那么IO这块就基本是迷迷糊糊。这个课程条理还是挺清晰的,要理解Java的IO确实应该先理解编码,编码的大概就是用字节来表示字符。计算机存储的是字节,一个字节一个字节存起来的,我们看到的是字符,许多字符在一起就是一段文字。字节怎么表示字符就是编码问题了。Java的InputStream之类的是处理字节流的,InputStreamReader这些是处理字符流的,我们知道了字节需要转换成字符才能表示成我们所理解的文字,那么Inp...
2016-09-01
已采纳回答 / 罗汉爷
因为累IOUtil中定义的是静态方法:public static void printHex。对于一般的非static成员变量或方法,需要有一个对象的实例才能调用,所以要先生成对象的实例,他们才会实际的分配内存空间。而对于static的对象或方法,在程序载入时便已经分配了内存空间,他只和特定的类想关联,无需实例化。
2016-08-27
已采纳回答 / 慕祈
io流中抛出异常是一种保护机制,保证程序不会异常中断,降低损失。因为可能就是文件在传输过程中遇到异常情况(如:机器坏了,主文件没了),无法成整个流程,这个时候就会出现异常。
2016-08-27
已采纳回答 / qq_弑神S无尘
分析代码:已有file类型dir对象,调用对象的ilstfiles方法,返回一个file数组,里面是dir里面的东西,并且已经被封装为file对象
2016-08-25
已采纳回答 / Airly
先说说你的这个问题, 为什么不是小于bytes的长度?int bytes=in.read(buf,0,buf.length); 这里bytes返回的是int类型的整数而不是数组!没有.length这一说你其实想说的是为什么不是小于buf[i]这个数组的长度吧...是因为老师设置了byte[] buf =new byte[20*1024],有可能读取出来的字节并没有把这个数组装满,所以这里的i只能小于读出来的有效字节长度,而这个读出来的有效字节长度就是int bytes=in.read(buf,0,buf....
2016-08-25