JAVA File类执行下面这段程序为什么会出现异常 File file=new File(args[0]); 这句是什么意思??
答案:6 悬赏:70 手机版
解决时间 2021-12-03 01:33
- 提问者网友:兔牙战士
- 2021-12-02 11:49
JAVA File类执行下面这段程序为什么会出现异常 File file=new File(args[0]); 这句是什么意思??
最佳答案
- 五星知识达人网友:罪歌
- 2021-12-02 12:47
using:java FileDemo pathname
这句是提示你这个程序的用法:要按照上面的格式运行,就是“java FileDemo 路径参数”的方式。
你在执行java程序时,是可以给main函数指定参数的:
如果这样:Java FileDemo
那么没有任何参数。
如果这样:Java FileDemo p1 p2 p3
这样就指定了三个参数,它们就保存在main函数的参数变量里:String[] args
这是一个字符串数组,args[0]就表示第一个参数“p1”,args[1]就表示第二个参数“p2”,args[2]就表示第三个参数“p3”,
所以如果你不指定任何参数直接执行“Java FileDemo”,这样args这个字符串数组变量是空的,args[0]就会抛异常,程序catch住异常后就会输出“using:java FileDemo pathname”。
正确的用法是要给一个文件路径参数,比如:
java FileDemo C:\Windows\Web
这样用才对。
这句是提示你这个程序的用法:要按照上面的格式运行,就是“java FileDemo 路径参数”的方式。
你在执行java程序时,是可以给main函数指定参数的:
如果这样:Java FileDemo
那么没有任何参数。
如果这样:Java FileDemo p1 p2 p3
这样就指定了三个参数,它们就保存在main函数的参数变量里:String[] args
这是一个字符串数组,args[0]就表示第一个参数“p1”,args[1]就表示第二个参数“p2”,args[2]就表示第三个参数“p3”,
所以如果你不指定任何参数直接执行“Java FileDemo”,这样args这个字符串数组变量是空的,args[0]就会抛异常,程序catch住异常后就会输出“using:java FileDemo pathname”。
正确的用法是要给一个文件路径参数,比如:
java FileDemo C:\Windows\Web
这样用才对。
全部回答
- 1楼网友:北方的南先生
- 2021-12-02 17:59
访问数组超边界了啊。
- 2楼网友:未来江山和你
- 2021-12-02 16:57
import java.io.*;
import java.util.*;
public class FileClass {
public static void main(String[] args) {
try {
File file = new File("D:\\A\\");//D盘下的一个A文件夹,这里你也可以写一个文件的路径
//把那个命令行输入参数写死,就不会有错,arg[0]是接受命令行参数的第一个参数
if (file.isFile()) {
System.out.print(file.canRead() ? "可读" : "不可读");
System.out.print(file.canWrite() ? "可写" : "不可写");
System.out.print(file.length() + "字节");// 注意不能调用数组类型 File[] 的
} else {
File[] files = file.listFiles();
ArrayList fileList = new ArrayList();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
System.out.println("路径" + "[ " + files[i].getPath()
+ " ]");
} else {
fileList.add(files[i]);
}
}
for (File f : fileList) {
System.out.println(f.toString());
}
System.out.println();
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("using:java FileDemo pathname");
}
}
}
import java.util.*;
public class FileClass {
public static void main(String[] args) {
try {
File file = new File("D:\\A\\");//D盘下的一个A文件夹,这里你也可以写一个文件的路径
//把那个命令行输入参数写死,就不会有错,arg[0]是接受命令行参数的第一个参数
if (file.isFile()) {
System.out.print(file.canRead() ? "可读" : "不可读");
System.out.print(file.canWrite() ? "可写" : "不可写");
System.out.print(file.length() + "字节");// 注意不能调用数组类型 File[] 的
} else {
File[] files = file.listFiles();
ArrayList
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
System.out.println("路径" + "[ " + files[i].getPath()
+ " ]");
} else {
fileList.add(files[i]);
}
}
for (File f : fileList) {
System.out.println(f.toString());
}
System.out.println();
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("using:java FileDemo pathname");
}
}
}
- 3楼网友:底特律间谍
- 2021-12-02 15:19
看的我头疼…不懂…
- 4楼网友:鱼芗
- 2021-12-02 14:47
File file=new File(args[0]); 就是创建一个args[0]所指文件路径的文件对象。你把args[0]作为文件路径,而你运行时又没有指定,当然要出现异常啊
- 5楼网友:几近狂妄
- 2021-12-02 14:26
arrayList可以用foreach么,要用.size()方法获得数据数
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯