最赞回答 / 头发多
00 06 ---> 这两字节表示的是字符串s占6个字节 ( String s = dis.readUTF(); )e4 b8 ad e5 9b bd --->"中国"的utf-8编码4e 2d 56 fd --->"中国"的utf-16be编码
2016-12-26
坑爹啊,软件里没有自动生成tostring的方法,就没写,这个反序列化得到的对象还不能通过字段(属性)访问。必须用tostring方法才能看出来,研究了好久。还有就是Iso.readobject();有异常,需要处理
2016-12-24
已采纳回答 / pergod
bytes是读取到字节的长度,如果因为流位于文件末尾而没有 可用 的字节,则返回值 -1。(bytes = in.read(buf, 0, buf.length))> 20*1024,如果这样设置的话,后面已经没有可用的字节还是会继续读入,这样会异常吧。
2016-12-22
个人觉得已经很不错了!我能不能说这是Java中比较基础的部分,文件操作也是要掌握的内容之一!要是觉得很难又不去好好思考只是一味吐槽老师讲的不好,那你的学习道路真心堪忧....
2016-12-20
我去看了看read(byte[])这个方法源码,发现他其实就是read(void)的封装,所以所谓的读取到byte数组方式读取效率高就是错误的
但是视频中两种方法执行时间相差很大,为什么呢?
因为读取mp3文件(3MB左右)的时候,读取到byte[]数组方式的缓冲区为8*1024Byte,即8KB,也就是只读了mp3文件的前8KB内容,而单字节读取方式是读取整个文件
但是视频中两种方法执行时间相差很大,为什么呢?
因为读取mp3文件(3MB左右)的时候,读取到byte[]数组方式的缓冲区为8*1024Byte,即8KB,也就是只读了mp3文件的前8KB内容,而单字节读取方式是读取整个文件
2016-12-19
最赞回答 / 春城乐
你新建的文本文件window默认是ANSI编码,而ANSI编码就代表GBK编码,java是双字节编码,即utf-16be,先检查你建的项目是不是GBK或utf-16be编码,再检查写入文件时的字节或字符流是否指定为该编码方法!可参照以下代码:public class BufferReaderWriter { public static void main(String[] args) throws IOException { // 读操作 BufferedReader br=new Bu...
2016-12-17
已采纳回答 / 春城乐
public static void main(String[] args) throws IOException { // TODO 自动生成的方法存根 String file="demo/dos.txt"; DataOutputStream dos=new DataOutputStream(new FileOutputStream(file)); dos.writeInt(10); dos.writeInt(-10); dos.writeLong(10L); dos.writeDoub...
2016-12-17