楼主的代码没有错。
从楼主的代码可以看出,是要从E:\test.txt文件中读取内容然后打印到控制台窗口。
这个程序有两种情况:
1,如果E:\test.txt这个文件中有内容,则这个程序运行没有问题。
2,如果E:\test.txt这个文件中没有内容。则
reader = new InputStreamReader(new FileInputStream(f));
char c[] = new char[1024];
int len = reader.read(c);
这三句话执行完,最后reader.read(c);返回的len的值是-1,
然后System.out.println(new String(c,0,len));时,
相当于System.out.println(new String(c,0,-1));,即从c数组的0脚标读到-1脚标,然后将读到的数据转换成字符串,
再打印到控制台。显然没有-1脚标,然后就会出现StringIndexOutOfBoundsException这个异常提示。
楼主是属于第二种情况。楼主得让E:\test.txt这个文件中有内容才行。
|