检测args [0]是否为空或不是文本文件

时间:2013-12-12 16:28:47

标签: java exception-handling args

有人可以查看下面的代码并告诉我为什么如果args [0]为空它没有显示错误消息?如果输入的文件是重复的,则程序正常工作,显示文件已存在的消息。 Java正在向我抛出一个ArrayIndexOutOfBounds错误。我已经尝试将该异常添加到代码中,但没有任何东西可以解决它。

import java.io.*;
import java.util.*;
public class inputTest{
    public static void main(String[] args) throws IOException{
    if(args.length() == 0){
    System.out.println("Please enter a correct text file name!");
    System.exit(1);
    }
    java.io.File file = new java.io.File(args[0]);
    if (file.exists()){
        System.out.println("This file already exists!"); // If file exists, throw exception
        System.exit(1);
    }
    // Create a file    
    java.io.PrintWriter output = new java.io.PrintWriter(file);

    }
}

另外,有没有办法确保在命令提示符下输入的文件是.txt品种?

2 个答案:

答案 0 :(得分:0)

此代码将提供编译问题

Cannot invoke length() on the array type String[]

更改为

public static void main(String[] args) throws FileNotFoundException {
    // TODO Auto-generated method stub
    if(args.length == 0){
        System.out.println("Please enter a correct text file name!");
        System.exit(1);
    }
    java.io.File file = new java.io.File(args[0]);
    if (file.exists()){
        System.out.println("This file already exists!"); // If file exists, throw exception
        System.exit(1);
    }
    // Create a file    

    java.io.PrintWriter output = new java.io.PrintWriter(file);
}

答案 1 :(得分:0)

考虑使用Apache Commons ArrayUtils isEmpty()来测试Array的空白,而不必担心处理null数组与空数组。

您还可以使用Apache Commons IO FilenameUtils getExtension()来获取文件的扩展名。

虽然这无法帮助您掌握Java的概念,但您现在可能熟悉Java开发人员使用的主要库集之一,以及如何将库添加到项目中。