JAVA IO流复制文件内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA IO流复制文件内容相关的知识,希望对你有一定的参考价值。
用 int date =fis.read 后,再用 char进行转换,就能输出文本内容, 我的意思是,想用 char c的内容通过下面的output流输出到文本中,发现fos.write不能传递 C进去,有办法修改吗?
呃,简单地说是因为你对同一个文件同一次读取进行两次,第一次while读取完后,你本意是仅仅想看看里面到底是什么东西,所以你命令fis一个字节一个字节地往下读,直到fis读取到文件的末尾(此时while里面的!=-1条件为假),但事实上是,你认为你在看,其实你是在读。你看完后不满足又想看一次,你让fis梅开二度,又用另一个while去命令同一个fis一个字节一个字节的往下读,但早在第一个while结束后,fis已经卡在了文件的末尾了,再命令fis去read返回的永远都是-1,所以此时在第二个while语句中fis执行第一次read时就跳出来了,为啥?因为fis.read()返回为-1啊。所以C就压根没赋到,而且即便赋值,C也只能装下一个char啊。至于这么解决,思路如下:你是通过fis一个字节一个字节地读取给一个int类型变量date,那么既然date可以打印出,可以赋给char c,自然可以被写到文件里面去;那么你看看fos能不能一个字节一个字节地写文件,这样在while中,fis每读一个字节,fos就把它写文件(想想一下这个效率吧~~)。不过一定要记住,同一个fis不可能两次踏进同一个文件两次以上,一个while就玩完!! 参考技术A char c定义在外面不就行了 参考技术B 只能write字节数组吧,你先String.valueOf(c).然后再str.getBytes()不就行了吗?
以上是关于JAVA IO流复制文件内容的主要内容,如果未能解决你的问题,请参考以下文章