我想用数组来做,同时满足题目要求用while、count,一直做不出来
//运行结果: //文本内容:bdfhjlnprt //统计结果:speeech.txt文件中共有10个字节 public class Test { public static void main(String[] args) { try { FileInputStream fs = new FileInputStream("speech.txt"); byte b[] = new byte[20]; int count = 0; int n = 0; while ((n = fs.read()) != -1) { fs.read(b, count, 1); count++; } System.out.println(new String(b)); System.out.println("speech.txt文件中共有" + count + "个字节"); fs.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
1
收起
正在回答
6回答
同学你好,同学的代码中创建两个不同名称的数组变量,这时是不会报错的哦~
同学没有给出课程,老师在这里只能猜测,同学所说视频中创建两个数组变量报错的原因可能是因为:创建了两个同名的数组变量哦~
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
好帮手慕小班
2019-06-24 10:54:59
同学你好,如上代码并不能成功运行出来哦!
其中fs2中的read有参的方法中,第二个参数的含义是从第几个数据开始读,而count的值每次加1,最后就会数组下标越界,出现IndexOutOfBoundsException这个异常!
所以建议同学不要使用数组来完成这个题目哦,同学可以参考这个回答中的代码https://class.imooc.com/course/qadetail/98018
如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~
慕哥5118177
2019-06-23 20:23:22
//用数组的方法,多创建一个对象,就可以满足题目要求了 public class Test { public static void main(String[] args) { try { FileInputStream fs = new FileInputStream("speech.txt"); FileInputStream fs2 = new FileInputStream("speech.txt"); byte b[] = new byte[20]; int count = 0; int n = 0; while ((n = fs.read()) != -1) { fs2.read(b, count, 1); count++; } System.out.println("文本内容:" + new String(b)); System.out.println("统计结果:" + "speeech.txt文件中共有" + count + "个字节"); fs.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星