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就玩完!!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-09-18
char c定义在外面不就行了
第2个回答  2014-09-18
只能write字节数组吧,你先String.valueOf(c).然后再str.getBytes()不就行了吗?

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网