有人可以查看下面的代码并告诉我为什么如果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品种?
答案 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开发人员使用的主要库集之一,以及如何将库添加到项目中。