最赞回答 / 一五五一
ObjectOutputStream的实例调用writeObject(obj)方法时,虚拟机通过反射检查对象的类是否实现Serializable接口,如果实现,则虚拟机内部进行序列化操作,同时通过反射检测类是否有writeObject方法,如果有则调用obj的writeObject方法,反序列化类似。我是这样理解的,欢迎指正。
2017-08-27
最赞回答 / YI_F
引用woider所讲的:使用缓冲字节流复制确实是最快的方式,但对于小文件10M以下的文件体现不出优势,对于百兆文件正确使用,时间可以控制到50ms内。视频中的缓冲字节流使用有错误,复制文件最快的做法是将批量读取到的字节数组使用缓冲写入到文件,在机器性能范围内字节数组越大越快。在循环写入的过程中不需要使用flush,就像cwt8805说的,缓冲输入流在关闭的时候会将所有缓冲区的数据全部写入文件,使用flush刷新缓冲就失去了缓冲的意义。最后关闭IO流和文件流应该在finally中关闭,否则IO异常时执行不到...
2017-08-26
最赞回答 / Pikaqiu_01
因为你的源文件和目标文件名称一样,所以在找目标文件时发现了和目标文件名称一样的源文件,就把源文件删除了重新创建了一个文件,所以你的源文件就没有了,老师视频里面有讲到,当你给出一个路径时,如果没有这个文件他会创建这个文件,如果存在这个文件他会把这个文件删除再创建,如果你不想这个已经存在的文件被删除,只是想要续写他,需要再加一个true,如果我没记错应该是:new File("文件路径",true),具体的你可以再听一遍
2017-08-08
最赞回答 / 小小小小小柯丶
我的理解是,视频里面老师展示的是单字节处理,批量处理和单字节带缓冲区处理,其中处理速度:单字节处理<单字节带缓冲区处理<批量处理。但是并没有讲到批量带缓冲区处理,也许你试试这种方法更快。
2017-08-04
最新回答 / PzZZ
先建一个文本文件,然后进入这个文本文件打一个联字,再保存再进入,你会发现乱码,因为联这个字是很巧合的被utf-8识别存储的,如果你建完文件直接打联,再保存就不会乱码了,因为它被存储为ansi了
2017-07-31