因此,正如您所看到的,我正在读取文件并显示文件中的所有整数并将金额放入数组中,我需要帮助的只是一个trycatch块,它打印出“您没有输入任何内容”,基本上当用户将Commandline参数保留为空白时。

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.InputMismatchException;

public class Print5{

    public static void main(String[] commandlineArgument) {
        Integer[] array = Print5.readFileReturnIntegers(commandlineArgument[0]);
        Print5.printArrayAndIntegerCount(array, commandlineArgument[0]);
    }

    public static Integer[] readFileReturnIntegers(String filename) {

        Integer[] temp = new Integer[10000];
        int i = 0;    
        File file = new File(filename);//Connects File
        Scanner inputFile = null;

        try{
            inputFile = new Scanner(file);
        }
        catch(FileNotFoundException Exception1) {
            System.out.println("File not found!"); //error message when mistyped 
        }


        //where the blank error arg will go
        if (inputFile != null) {

            try {
                while (inputFile.hasNext()) {
                    try {
                        temp[i] = inputFile.nextInt();
                        i++;
                    } catch (InputMismatchException Exception3) { //change this back to e if doesnt work
                        inputFile.next();
                    }
                }
            }
            finally {
                inputFile.close();
            }

            Integer[] array = new Integer[i];
            System.arraycopy(temp, 0, array, 0, i);
            return array;
        }
        return new Integer[] {};
    }

    //Prints the array 
    public static void printArrayAndIntegerCount(Integer[] array, String filename) {
        System.out.println("number of integers in file \"" + filename + "\" = " + array.length);

        for (int i = 0; i < array.length; i++) {
            System.out.println("index = " + i + "," + " element = " + array[i]);
        }
    }
}

#1楼 票数:1 已采纳

在显示错误消息后,添加对数组大小的检查并退出程序:

public static void main(String[] commandlineArgument) {
    if(commandlineArgument.length < 1) {
        System.err.println("Your error message"); // use the std error stream
        System.exit(-1);
    }
    ...

按照约定, System.exit()的非零状态参数表示异常终止。

#2楼 票数:0

只需检查args数组的长度即可:

public static void main(String[] commandlineArgument) {

     if ( commandlineArgument.length > 0 ) {
         Integer[] array = Print5.readFileReturnIntegers(commandlineArgument[0]);
         Print5.printArrayAndIntegerCount(array, commandlineArgument[0]);
     }
     else {
          System.out.println("usage - ... your message");
     }
  }

#3楼 票数:0

尝试使用Apache CLI库。 http://commons.apache.org/proper/commons-cli/

它允许您定义必需的选项,如果缺少这些选项,则可以进行失败。

  ask by CMcorpse translate from so

未解决问题?本站智能推荐:

1回复

如何将我的方法中的信息作为表输出到用户?

对于我的程序,我试图使用来自文件的数据,该文件将使用数字(代表摄氏),并使用它们来计算标准偏差/转换为华氏度。 我已经创建了用于计算的方法,但是我不确定在运行代码时从这些方法向用户输出信息的正确方法是什么。 我试过了: sDeviation(摄氏度); double fDeviation =
1回复

读取文件输入并显示字母长度比例的程序,依此类推

我有两天的作业,而且我已经尝试了很多天来完成这项工作,但是我很沮丧,试图回到工作上,仍然没有任何进展。 分配如下: 从任何文本文件计算以上统计信息的Java程序。 实际操作如下所示:输入文件的名称:example.txt 1个字母的单词的比例:3.91%(74个单词)2个字母的单词的比
2回复

Java中的“找不到符号-方法hasNextLine()”错误

我正在尝试编写一个使用文件I / O评分个性测试的程序。 但是,当我得到以下代码时: 我得到标题中描述的错误。 这是完整的代码。 我先导入了所有必需的I / O和实用程序,我认为我正确地声明了文件变量。 我知道这种方法存在,但是出了什么问题?
1回复

从命令行txt.filejava填充数组

我一直在尝试使用字符串填充数组并将其分解为不同的数组,但我不能正确读取它,因为我的数组中没有任何内容?
2回复

创建文件数组时出现空指针异常错误[重复]

这个问题已经在这里有了答案: 什么是NullPointerException,我该如何解决? 12个答案 在for循环中,根据是否满足条件,每次都需要创建文件。 执行代码时,会弹出NullPointerException 。
2回复

在Java中使用不正确的用户输入创建数组时如何准备

我正在尝试创建一种方法,该方法可创建未知大小的2D数组,并使用循环将其填充为用户在主程序中提供的字符。 如果用户给出例如负值,则该方法应返回null。 当用户使用合适的值时,我可以使它工作,但是当值是负数时,则不能。 我用这个: 我了解为什么它不起作用,因为 我在创建数组之后出现,因此负值会产生错误
3回复

不正确的输入

我想将一些数据写入文件,这是我的代码: 我的文件已创建,但这是我得到的: 但我希望它是: 我认为在行变量的末尾添加“\\ n”会解决这个问题,但事实并非如此。 关于如何解决这个问题的任何建议?
4回复

为什么不显示?

它不会显示其中包含单词的代码行。 我希望它显示包含子字符串“ put”(不区分大小写)的代码行。 第一行和第二行都应打印,因为它们都包含子字符串“ put”。 这是文本文件: 测试输入。 在此处输入文字。 不在这里。 在计算机上运行它。