JAVA IO流复制文件内容

用intdate=fis.read后,再用char进行转换,就能输出文本内容,我的意思是,想用charc的内容通过下面的output流输出到文本中,发现fos.write... 用 int date =fis.read 后,再用 char进行转换,就能输出文本内容, 我的意思是,想用 char c的内容通过下面的output流输出到文本中,发现fos.write不能传递 C进去,有办法修改吗? 展开
 我来答
tanchen1991
推荐于2016-06-07 · TA获得超过1369个赞
知道小有建树答主
回答量:337
采纳率:100%
帮助的人:255万
展开全部
呃,简单地说是因为你对同一个文件同一次读取进行两次,第一次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就玩完!!
百度网友14f7e688aad
2014-09-18 · TA获得超过660个赞
知道小有建树答主
回答量:830
采纳率:0%
帮助的人:655万
展开全部
char c定义在外面不就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
问题终结机
2014-09-18 · 超过12用户采纳过TA的回答
知道答主
回答量:29
采纳率:0%
帮助的人:19.9万
展开全部
只能write字节数组吧,你先String.valueOf(c).然后再str.getBytes()不就行了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式