gpt4 book ai didi

java - 有没有办法让我能够对 System.in 输入和 FileInputStream 输入使用相同的扫描仪?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:59:21 26 4
gpt4 key购买 nike

有没有办法让我能够对 System.in 输入和 FileInputStream 输入使用相同的扫描器?

这是我在主类中初始化扫描仪的方式:

public class Nimsys {
public static Scanner keyboardIn;

static {
keyboardIn = new Scanner(System.in);
} ...

在主类 Nimsys 中,这是我获取输入的方式:

String inputString1 = keyboardIn.nextLine();

在另一个类中,我是如何使用 Nimsys 的扫描仪的:

int inputInt1 = Nimsys.keyboardIn.nextInt();

但现在在我的主类 Nimsys 中,我正在尝试扫描整个文件 - 到目前为止,我使用了另一个扫描仪,如您在下面的代码中所见。但是,是否有可能全部由原始扫描仪完成?

try
{
inputStream = new Scanner(new FileInputStream("file.txt"));
}
catch (FileNotFoundException e)
{
System.out.println("File morestuff.txt was not found");
}
String[] reopenPlayers = new String[100];
int i = 0;
while(inputStream.hasNextLine()){
reopenPlayers[i]=inputStream.nextLine();
System.out.println(reopenPlayers[i]);
}

非常感谢!

汤姆

最佳答案

如果我理解你的问题(不是我认为全局变量是一个很好的解决方案),你可以更改(也许重命名)

keyboardIn = new Scanner(System.in);

类似于

try {
keyboardIn = new Scanner(new FileInputStream("file.txt"));
} catch (FileNotFoundException e) {
System.out.println("file \"file.txt\" not found");
e.printStackTrace();
}

然后从

中删除 try-catch
inputStream = new Scanner(new FileInputStream("file.txt"));

并将其修改为类似

inputStream = Nimsys.keyboardIn;

(或将 inputStream 替换为 Nimsys.keyboardIn 并且不是规定性的,但可能将 Nimsys.keyboardIn 重命名为Nimsys.in)。希望您使用的是支持重构的 IDE。

关于java - 有没有办法让我能够对 System.in 输入和 FileInputStream 输入使用相同的扫描仪?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30496592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com