Topic: 【请教】数组里个数的类型为什么有时候用long会抱错,有时候不会?

  Print this page

1.【请教】数组里个数的类型为什么有时候用long会抱错,有时候不会? Copy to clipboard
Posted by: b0r0j0
Posted on: 2004-12-08 11:22

小d向大侠寻津:
读取一个文件
File f=new File("*.txt")
long len=f.length();
byte [] buffer=new byte[len];

报错:说类型错误----
readFile.java:30: possible loss of precision
found : long
required: int
byte [] buffer2=new byte[len];

然后我转换了类型------
long len=f.length();
int lenF=(int) len;
byte [] buffer=new byte[lenF];

这次没有错误。
但是后来见有一程序.length()直接写在下面的char[]里却不报错--

String source="this is just for FileWrite!";
char[] buffer=new char[source.length()];

为什么?
.length()的类型是long还是int啊?

2.Re:【请教】数组里个数的类型为什么有时候用long会抱错,有时候不会? [Re: b0r0j0] Copy to clipboard
Posted by: mitnickcbc
Posted on: 2004-12-08 11:49

自己查一下api就知道了,length()返回的是int

3.Re:【请教】数组里个数的类型为什么有时候用long会抱错,有时候不会? [Re: b0r0j0] Copy to clipboard
Posted by: bluepure
Posted on: 2004-12-08 11:54

File 的 length()返回的是long

String 的 length()返回的是int.

ps:你写的是file,是你自己定义的类吗?

如果不是,还请注意大小写。

4.Re:【请教】数组里个数的类型为什么有时候用long会抱错,有时候不会? [Re: b0r0j0] Copy to clipboard
Posted by: b0r0j0
Posted on: 2004-12-08 12:54

非常感谢楼上的大虾s,这下我坚定的明白了。


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923