黑马程序员技术交流社区
标题:
java数组
[打印本页]
作者:
赵嘉男
时间:
2012-4-26 23:45
标题:
java数组
import java.io.*;
public class app10
{
public static void main(String args[])throws Exception
{String str=new String();
try{InputStreamReader isr=new InputStreamReader(System.in);
BufferedReader in=new BufferedReader(isr);
String sdir="F:\\c";
String sfile;
File Fdir1=new File(sdir);
if(Fdir1.exists()&&Fdir1.isDirectory())
{
System.out.println("目录:"+sdir+"已经存在");
for(int i=0;i<=Fdir1.list().length;i++)
System.out.println((Fdir1.list())[i]);
File Fdir2=new File("F:\\c\\k");
if(!Fdir2.exists())
Fdir2.mkdir();
System.out.println();
System.out.println("建立新目录后的文件列表");
for(int i=0;i<=Fdir1.list().length;i++)
System.out.println((Fdir1.list())[i]);
}
System.out.println("请输入该目录的一个文件名");
sfile=in.readLine();
File Ffile=new File(Fdir1,sfile);
if(Ffile.isFile())
{System.out.print("文件名:"+Ffile.getName());
System.out.print(";所在目录:"+Ffile.getPath());
System.out.println(";文件大小:"+Ffile.length()+"字节");
}
}
catch(IOException e)
{ System.out.println(e.toString());
}
catch(ArrayIndexOutOfBoundsException e)
{System.out.println("错误");}
}
}
F盘里面有c文件,c文件里面a.txt和d文件,d文件里面有b.txt,怎么一打印就出错呢
作者:
杨志
时间:
2012-4-27 00:05
兄弟!我想我该提醒你点东西!
你这个错误是因为这句话:
for(int i=0;i<=Fdir1.list().length;i++)
这里总共两处的等号是不要的!如果要这个等号就是越界了!
如果你把异常输出的话:
java.lang.ArrayIndexOutOfBoundsException: 2
at com.test.app10.main(app10.java:17)
很明显是数组越界。而你选择了答应硬编码。这样就看不到异常了。
还有个东西就是你的这个代码中最好是类名的第一个字母大写。
这个是最基本的。一般类名的第一个字母是要求大写。
个人一点小建议!谢谢!
作者:
chenwei
时间:
2012-4-27 00:07
for(int i=0;i<=Fdir1.list().length;i++)
System.out.println((Fdir1.list())[i]);
每次都是i<=Fdir1.list().length
length是list的长度,
当i=Fdir1.list().length,就数组索引越界了,就打印错误
改为i<Fdir1.list().length
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2