黑马程序员技术交流社区
标题:
IO中文件遍历小程序
[打印本页]
作者:
LSCZ3633
时间:
2014-2-13 11:22
标题:
IO中文件遍历小程序
package com.itheima;
import java.io.*;
public class FileDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File dir =new File("E:\\java\\基础视频");
showDir(dir);
}
public static void showDir(File dir){
sop(dir);
File[] file=dir.listFiles();//
for(int x=0;x<=file.length;x++){//获取数组长度
if(file[x].isDirectory())//判断是否为目录做为限定条件
showDir(file[x]);//自身调用为递归,
else sop(file[x]);
}
}
public static void sop(Object obj){
System.out.println(obj);
}
}
复制代码
大家帮忙看看哪有问题 一直报错
作者:
LSCZ3633
时间:
2014-2-13 11:24
E:\java\基础视频\韩顺平.循序渐进学java从入门到精通\第9讲-类方法.封装.avi
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 94
at com.itheima.FileDemo.showDir(FileDemo.java:18)
at com.itheima.FileDemo.showDir(FileDemo.java:19)
at com.itheima.FileDemo.main(FileDemo.java:12)
这是异常信息 应该怎么修改代码啊
作者:
L_t
时间:
2014-2-13 11:35
for(int x=0;
x<=file.length
;x++){//获取数组长度,将标记部分“=”去掉
import java.io.*;
public class FileDemo {
/**
* @param args
*/
public static void main(String[] args) {
File dir =new File("E:\\java\\基础视频");
showDir(dir);
}
public static void showDir(File dir){
sop(dir);
File[] file=dir.listFiles();//
for(int x=0;x<file.length;x++){//获取数组长度
if(file[x].isDirectory())//判断是否为目录做为限定条件
showDir(file[x]);//自身调用为递归,
else sop(file[x]);
}
}
public static void sop(Object obj){
System.out.println(obj);
}
}
复制代码
作者:
zzkang0206
时间:
2014-2-13 11:36
数组越界
作者:
程澄
时间:
2014-2-13 11:36
for(int x=0;x<=file.length;x++){//获取数组长度
这句话导致数组角标越界异常.ArrayIndexOutOfBoundsException
应该是x<file.length
作者:
LSCZ3633
时间:
2014-2-13 11:37
恩恩 总算ok了 啥时候多写了个=号呢
作者:
爱上这格调
时间:
2014-2-13 11:38
数组越界了 数组角标从0开始 最大的角标 比长度小一 所以 循环的时候不应该带等号
作者:
kira
时间:
2014-2-13 11:39
本帖最后由 kira 于 2014-2-13 11:46 编辑
我这里是显示的空指针了 原因是你还没判断它存不存在
我是这样修改的
import java.io.*;
public class FileDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File dir =new File("E:\\java\\基础视频");
showDir(dir);
}
public static void showDir(File dir){
if(dir.exists()){//只有存在了才能进行下一步
sop(dir);
File[] file=dir.listFiles();//
for(int x=0;x<file.length;x++){// 这里不能等于file.length 因为是从0开始的
if(file[x].isDirectory())//判断是否为目录做为限定条件
showDir(file[x]);//自身调用为递归,
else sop(file[x]);
}
}
else{
sop("文件不存在");
return;
}
}
public static void sop(Object obj){
System.out.println(obj);
}
}
复制代码
还有数据越界的问题
作者:
LSCZ3633
时间:
2014-2-13 21:46
kira 发表于 2014-2-13 11:39
我这里是显示的空指针了 原因是你还没判断它存不存在
我是这样修改的
还有数据越界的问题 ...
非常感谢!这个问题很重要,因为我是自己直接复制的路径,所以没有错误提示!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2