[从文本文件写入时,数组仅将值设置为“ 0”

来源:爱站网时间:2021-09-16编辑:网友分享
String path1,path2; int count = 0,i = 0; path1 = args [0];文件文件=新文件(path1); FileReader reader =新的FileReader(file);扫描仪inputFile =新的扫描仪(阅读器); ...

问题描述


    String path1, path2;
    int count = 0, i = 0;
    path1 = args[0];

    File file = new File(path1);
    FileReader reader = new FileReader(file);
    Scanner inputFile = new Scanner(reader);

    while(inputFile.hasNextInt()) {
        inputFile.nextLine();
        count++;
    }
    int[] array1 = new int[count];
    while(inputFile.hasNextInt()) {

        //inputFile.nextLine();
        array1[i] = inputFile.nextInt();
        i++;
    }

我以前从未遇到过此问题,但是当我尝试从仅包含int值(每行一个)的文本文件中将值写入数组时,我的数组仅返回所有“ 0”。而不是文本文件中的数字。我不确定是否与命令行有关,但在IDE中输入了正确的参数(文件目标)。

提前感谢!

思路:


请注意,两个while循环的退出条件都相同。如果第一个结束,则第二个将跳过,因为条件立即为假。扫描仪的指针已经在文件的末尾(所有数字均已在第一个循环中读取),因此没有要读取的内容。

您有2个解决此问题的选项。

  1. 使用数组列表:使用ArrayList对象将数字保存在第一个循环中。列表随着输入数字的增长而增长,因此您无需在创建此对象之前知道行数,而无需知道此数目即可创建数组。
  2. 再次扫描文件:在循环之间关闭以前的文件阅读器和扫描器,然后创建一个新的文件阅读器和扫描器。此新扫描程序将再次指向文件的开头,第二个循环将平稳运行。

上一篇:替代在控制台中手动编写

下一篇:如何纠正说不兼容类型的编译器错误?

您可能感兴趣的文章

相关阅读

热门软件源码

最新软件源码下载