Java 为什么扫描仪不读取文本文件并不断返回null?

Java 为什么扫描仪不读取文本文件并不断返回null?,java,Java,代码应该获取一个文本文件,并将其内容(短语)逐行放入短语数组中。然后使用随机索引,从短语数组中选择一个随机短语。问题是扫描仪无法读取文本文件并返回“null” 声明 i= i++; 最后不会增加i的值,因此从文件中读取的所有行最终都会写入短语[0],即只有最后一行存储在短语[0]中。那条线应该是 i++; 或 解释一下,对于i=i++发生以下情况: 将临时保存i的当前值(初始值0) i是递增的 暂时保存的i值被分配回i 因此,i永远不会递增。这来自增量后运算符的定义,即尾随的++i=i++应

代码应该获取一个文本文件,并将其内容(短语)逐行放入短语数组中。然后使用随机索引,从短语数组中选择一个随机短语。问题是扫描仪无法读取文本文件并返回“null”

声明

i= i++;
最后不会增加
i
的值,因此从文件中读取的所有行最终都会写入
短语[0]
,即只有最后一行存储在
短语[0]
中。那条线应该是

i++;

解释一下,对于
i=i++发生以下情况:

  • 将临时保存
    i
    的当前值(初始值
    0
  • i
    是递增的
  • 暂时保存的
    i
    值被分配回
    i

  • 因此,
    i
    永远不会递增。这来自增量后运算符的定义,即尾随的
    ++

    i=i++
    应该是
    i++
    i=i+1请注意,如果文件的行数超过140行,您将获得一个
    ArrayIndexOutOfBoundsException
    。同样,如果您的文件少于140行,您可能会返回一个空值(这可能不是您想要的)。
    i++;
    
    i=i+1;