已采纳回答 / qq_Hasneverforg_0
因为此处有两个异常—— FileNotFoundException, IOException ,而他们都是Exception的子类
2017-07-29
最新回答 / 慕婉清9094827
//删除临时文件 File file = new File(dir,fileName); if(file.exists()&&file.isFile()){ file.delete(); }根据路径和文件名读取文件,如果存在且是一个文件,则删除。这是我项目中用到的一段代码,亲测可用。
2017-07-26
已采纳回答 / FarFromAnyRoad
为什么乱码肯定是乱码啊, 你使用了DataOutputStream,把int long String 都存了进去。你打开这个文件,使用系统的notepad程序,notepad程序不知道你这个什么编码,用了ansi,吧intlong什么都放在一起当GBK处理了。怎么做不乱码不要用记事本打开DataOutputStream创建的东西,看不到乱码,眼不见心不烦。你自己知道是什么,用DataInputStream或者InputStream能取出来用就行了。
2017-07-13
已采纳回答 / 下线123
记事本里采用的是默认编码是ANSI<...图片...>,但是你项目中有很多编码方式,java默认的是utf-16be,你写汉字时使用的是writeUTF()这使用的是utf-8编码,你代码中也有注释的,所以编码方式不统一,自然会出现乱码
2017-07-13
已采纳回答 / qq_一人的征程_0
看API文档的解释,the total number of bytes read into the buffer, or -1 if there is
no more data because the end of the file has been reached.读到数据字节个数,如果没有读到数据时,返回-1
2017-07-11
最赞回答 / qq_一雨成秋_0
明白了。乱码才是正常的,因为序列化和反序列话是基于二进制流的,序列话便是把Student对象的信息以二进制存储在文件obj.bat中,用文本编辑器打开自然是乱码。只有通过反序列话才能将存储的二进制读取出来,然后显示在控制台上。
2017-07-10