已采纳回答 / 张博
c表示当前读取到的字节 。1、c = isr.read() Reads a single character 读取单个characterthe next byte of data, or -1 if the end of the file is reached返回下一个next byte of data2、c = isr.read(byte[] , start,len) Reads characters into a portion of an array 读取多个charachters 返回t...
2016-10-14
已采纳回答 / 深天
Stirng file =“demo/obj.dat" 这里仅仅是创建了一个字符串,并没有当做文件用。还有File file="demo/obj.dat";这种创建文件对象的方法是完全错误的,正确写法是这样的:File file=new File("demo/obj.dat");回到刚才"为什么后来可以当做一个文件用":同上一句话可以改写成File file01 =new File(file); //这里的的file引用上面的字符串即我们做的只是对字符串的引用,然后创建了一个文件对象,并没有说我们把它当...
2016-10-11
已采纳回答 / huangsai
这个方法的作用是把缓冲区的数据输出。一般在读写流的时候,数据是先被读到了内存中,再把数据写到文件中,当数据读完的时候不代表数据已经写完了,因为还有一部分有可能会留在内存这个缓冲区中。这时候如果调用了close()方法关闭了读写流,那么这部分数据就会丢失,所以应该在关闭读写流之前先flush()。
2016-10-11
已采纳回答 / niupizhi203522025
实际上并非是每次都产生异常,而是由于字符编码格式、文件是否存在等经常会发生异常,所以涉及到IO流或文件操作时,都要防止出现这样的异常,所以都要进行try/catch或抛除
2016-10-10
已采纳回答 / 慕函数7182242
bytes用来记录读入了多少个字节(in.read()的返回类型就是int,值为读的字节个数)in.read(buf,0,buf.length)用来读入,一次最多可以读buf.length个字节,但是并不是每次都读入了这么多个字节,(可能读的文件没这么长),所以是用bytes来控制循环结束的条件
2016-10-10
已采纳回答 / 远方的云o
这两个的差别,实际上是read()方法两种重载方式的差别。in.read()表示单字节读取,相当于一滴一滴水(字节)地去洒in.read(byte[] buf ,int start ,int size )表示字节先读取到buf缓冲区,start表示缓冲区的起始位置,size表示存入缓冲区的大小。这种方式相当于先把一滴一滴水(字节)放到一个桶(buf)里,当然这个桶肯定有大小(size),当桶里的水达到一定程度(缓冲区的极限)时,再将整个桶里的水洒出去。授人以鱼不如授人以渔详细课程可以去看看 慕课网Java...
2016-10-03
已采纳回答 / Jenichan
这么跟你说吧,GBK的编码中文和符号是双字节,字符和整型是单字节。utf-8的中文和符号是三字节,字符和整型是单字节。所以整体来说是不兼容的,但如果你的文本存的都是字符和数值,这样子是不会出现乱码的。
2016-09-26
已采纳回答 / 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