JAVA File类执行下面这段程序为什么会出现异常 File file=new File(args[0]); 这句是什么意思??
importjava.io.*;importjava.util.*;publicclassFileClass{/***@paramargs*/publicstaticvo...
import java.io.*;
import java.util.*;
public class FileClass {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
File file=new File(args[0]);
System.out.println(args[0]+"文件");
if(file.isFile()){
//是否为文件
System.out.print(file.canRead()?"可读":"不可读");
System.out.print(file.canWrite()?"可写":"不可写");
System.out.print(file.length()+"字节");//注意不能调用数组类型 File[] 的 length()例:File[] files=file.listFiles();不可以这么调用filess.length()
}
else{
//列出所有文件及目录
File[] files=file.listFiles();
ArrayList<File> fileList=new ArrayList<File>();
for(int i=0;i<files.length;i++){
//先列出目录
if(files[i].isDirectory()){
//是否为目录
//取得路径名
System.out.println("路径"+"[ "+files[i].getPath()+" ]");
}
else{
//文件先存入fileList,待会再列出
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");
}
}
}
结果:using:java FileDemo pathname
是不是创建的对象所代表的文件没有被创建成功 展开
import java.util.*;
public class FileClass {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
File file=new File(args[0]);
System.out.println(args[0]+"文件");
if(file.isFile()){
//是否为文件
System.out.print(file.canRead()?"可读":"不可读");
System.out.print(file.canWrite()?"可写":"不可写");
System.out.print(file.length()+"字节");//注意不能调用数组类型 File[] 的 length()例:File[] files=file.listFiles();不可以这么调用filess.length()
}
else{
//列出所有文件及目录
File[] files=file.listFiles();
ArrayList<File> fileList=new ArrayList<File>();
for(int i=0;i<files.length;i++){
//先列出目录
if(files[i].isDirectory()){
//是否为目录
//取得路径名
System.out.println("路径"+"[ "+files[i].getPath()+" ]");
}
else{
//文件先存入fileList,待会再列出
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");
}
}
}
结果:using:java FileDemo pathname
是不是创建的对象所代表的文件没有被创建成功 展开
展开全部
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
这样用才对。
展开全部
File file=new File(args[0]); 就是创建一个args[0]所指文件路径的文件对象。你把args[0]作为文件路径,而你运行时又没有指定,当然要出现异常啊
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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<File> fileList = new ArrayList<File>();
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<File> fileList = new ArrayList<File>();
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");
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
arrayList可以用foreach么,要用.size()方法获得数据数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询