已采纳回答 / QuaciXie
<...code...>read函数返回的是缓冲数组中实际上读入的字节数,无论是read(byte[] b) 还是 read(byte[] b,int off,int length)。对于read(byte[] b),它默认执行read(byte[] b,0,b.length)。所以应该可以用read(byte[] b)代替的 。解释如下:<...图片...>如果说在读到最后一组的时候,缓冲数组没有满,len值很有用。
2016-09-17
已采纳回答 / XhstormR
因为 你是 Bar2 bar2 = new Bar2(); bar2 = (Bar2)ois.readObject();但是老师写的是 Bar2 bar2 = (Bar2)ois.readObject(); 这里要注意的是 老师并没有去new一个Bar2对象而你却是先new出来的 肯定会调用父类的构造函数。
2016-09-14
已采纳回答 / 六月熊
UTF-8中,前面两个字符表示数据占用的字节数。eg: dos.writeUTF("中国中国"),运行结果前面两位就会为00 0c。即"中国中国"占用12个字节。还望采纳!
2016-09-11
最新回答 / 粒子酱
public static void main(String[] args) throws IOException{ // TODO Auto-generated method stub FileInputStream in = new FileInputStream("D:\\javaio.txt"); InputStreamReader isr = new InputStreamReader(in); int c; while((c=isr.read())!=-1); System.ou...
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
最赞回答 / 甯俊
wirtein (i)写入的是4个字节32位二进制数write( i )写入的是1个字节8位二进制数System.out.println(xxx.getgetFilePointer());获得当前光标所在位置
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