为什么我写入文件是正常的,但是打印到控制台上面的字符串显示的就不对呢?

为什么我写入文件是正常的,但是打印到控制台上面的字符串显示的就不对呢?

public void transWriterByBuf() {

try {

FileInputStream fis=new FileInputStream("./imooc.txt");

BufferedReader br=new BufferedReader(new InputStreamReader(fis));

FileOutputStream fos=new FileOutputStream("./imooc1.txt");

BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(fos));

int n=0;

char[] cbuf=new char[10];

while((n=br.read(cbuf))!=-1) {

String string=new String(cbuf,0, n);

System.out.println(string);

bw.write(cbuf, 0, n);

}

bw.flush();

br.close();

bw.close();

fis.close();

fos.close();

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}catch (IOException e) {

e.printStackTrace();

}

}

http://img1.sycdn.imooc.com//climg/5a810a39000194ae13800788.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

4回答
提问者 北斗神拳1984 2018-02-12 14:09:19

http://img1.sycdn.imooc.com//climg/5a812f6e000182a426440936.jpg有变化,但是还有一行显示错了,是什么原因造成的呢?

  • 你好,在数据读取过程中,char的数组长度就是实际读取输出的字符长度,定义为10的话,就是10个字符一输出,前几次如果可以存满就会输出10个字符,如果不满10个字符就是你图示的样子;你将char的长度定义为1024后,char[] cbuf=new char[1024];就可以完全读取出来了。祝学习愉快~
    2018-02-12 15:37:34
一叶知秋519 2018-02-12 13:41:31

你好,你把char[] cbuf=new char[10]; char数组的长度定义为100后,再试下。祝学习愉快~

提问者 北斗神拳1984 2018-02-12 11:39:14

http://img1.sycdn.imooc.com//climg/5a810c4c0001bf8324881476.jpg这个是控制台输出的显示效果

没有马甲线的安琪拉 2018-02-12 11:35:32

控制台显示效果是什么

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师