已采纳回答 / godspeed_26
所有的文件都可以理解为是byte[]。而1个byte占1个字节,一个Int是4个字节。所以说你写进去的东西将会出现乱码,除非你已readInt().或者已write()写read()读,总之你的输入和读取的类型要相同。
2015-11-04
已采纳回答 / SolaSJ
看来你没有理解toString()这个方法的含义 建议搜几篇文章看看按照你这里的思路 你注释掉读这个文件的操作 直接调用toString()这个方法也是输出"修改后"
2015-10-03
已采纳回答 / 武庚_Rehan
因为你while循环里将字符数组转换为String类型时,会自动添上项目默认编码(你的是utf-8),只要文本文件的编码和你输入流的编码一样,控制台应该就会正确输出吧
2015-09-14
已采纳回答 / demmo
for循环输出buf数组中的内容, while循环控制文件是否读完; read()返回的读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。在某些输入可用之前,此方法将阻塞。我的理解是一个水池,大小是buf.length 放满水后(存满了数据)从另个通道排出, 然后进水口在继续进水(继续读取数据,从0到buf.length)当最后一次排水结束 进水口没有进水了 返回了-1 触发了whlie的条件 ...
2015-09-09
已采纳回答 / sixGod
就是方法调用而以啊,你这段代码是不是写在ListDirectory()中啊,接收参数是个文件,整个方法逻辑就是1、传一个文件路径dir进来,如果传进来的是文件夹,取出文件夹中的所有文件进行遍历2、遍历时将每个文件进行判断,如果发现是文件夹,执行递归,又回到第一步。如果不是文件夹,就输出
2015-09-02
已采纳回答 / 忘性最大的人
每次读取buf数组长度的数据,当读到文件末尾时,因为二进制流读取是读0或1,当读到-1时说明文件已经读到末尾,此时文件读取完毕。上面的循环就是在反复读取文件,直到读到文件末尾的-1,文件读完。
2015-08-30