黑马程序员技术交流社区
标题:
String(arr,0,num)里的0和num分别起到了什么作用
[打印本页]
作者:
赵志伟
时间:
2012-3-13 09:51
标题:
String(arr,0,num)里的0和num分别起到了什么作用
public static void main(String[] args) throws IOException
{
// TODO Auto-generated method stub
FileReader fr=new FileReader("demo.txt");
char[] arr=new char[1024];
int num=0;
while((num=fr.read(arr))!=-1){
System.out.println(new String(arr,0,num));
}
fr.close();
}
作者:
王国华
时间:
2012-3-13 09:54
本帖最后由 王国华 于 2012-3-14 08:45 编辑
0是角标,num是读到字符数组的长度
作者:
张希强
时间:
2012-3-13 09:55
0和num的作用是表示开始和结束的位置。
fr.read(arr)在读取结束时返回的才是-1,其他时候返回的是当前字符数组的元素位置。
作者:
段浩亮
时间:
2012-3-13 11:28
char[] arr=new char[1024];
System.out.println(new String(arr,0,num));
String(arr,0,num)的作用是把arr数组中从0开始,num个字符变成字符数组
这样写的目的是当读到文件末尾时数组可能存不满 就没必要把后面的空字符也变成字符串打印出来 就是里面存多少打印出多少
作者:
肖岑锋
时间:
2012-3-13 12:58
在读取文件结束的时候,可能出现并没有1024字符的数据。为了节省空间,使用string[arr,0,aum]可以只读取字符数组中从0开始的aum字符,并不读取后面空余的空字符。
作者:
王思兰
时间:
2012-3-13 13:19
0表示开始的位置,角标,num表示长度
作者:
魏昂
时间:
2012-3-13 14:14
我也学会了 谢谢哦
作者:
未济64
时间:
2012-3-13 15:48
new String(arr),这里的是为了把字符数组转成字符串打印出来,因为有可能这种情况,假如你的读入 数据只有几个或者几十个,如果用new String(arr)的话,会把1024个字符全转成了字符串,包括空格,全部打印出来了,num是记录字符数组的个数的,所以只要把0到num个字符转成字符串打印即可,提高了效率。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2