我对Java很陌生,因此它可能是一个愚蠢的问题。但是我需要为我的数据结构类项目解决它...
所以我试图用2个不同的输入文件来填充程序。我知道我们可以使用Scanner和InputStreamReader用1个文件来实现这一点,我不知道我应该如何用2个文件来实现。
在与我的类似问题的一些答案中,有人提到了我认为可以解决此问题的外壳。但是,我对shell一无所知,所以我想知道是否可以在不编写shell文件的情况下解决此问题,以及在命令行中输入多个文件的语法是什么。
我在命令行中执行的内容(带有1个输入文件):
java UserInterfaceOrNot < input.txt > output.txt
如果需要,我将发布更多代码。
码:
public class UserInterfaceOrNot
{
public static EventManager em;
public static Scanner scn = new Scanner(new InputStreamReader(System.in));
public static void main (String [] args)
{
UserInterfaceOrNot ui = new UserInterfaceOrNot();
while (scn.hasNext()){ui.runData();}
scn = new Scanner(new InputStreamReader(System.in));
while (scn.hasNext() && !scn.next().equals("x")){ui.runCommand();}
}
java UserInterfaceOrNot input1.txt input2.txt output.txt
像这样调用程序时,实际上是将3个参数传递给javapublic static void main (String [] args)
方法。您可以在该String数组(String [] args
)中按顺序找到这些参数。读取参数:
您可以通过创建另一个方法来读取每个文件(input1和input2),就像这样
public String readFileAsString(String inputFile) throw IOException {
BufferedReader br = new BufferedReader(new FileReader(inputFile));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
return sb.toString();
} finally {
br.close();
}
}
然后在您的main方法中可以这样调用它:
public static void main(String[] args) throws Exception {
UserInterfaceOrNot ui = new UserInterfaceOrNot();
String inputFile1 = args[0];
String inputFile2 = args[1];
String input1AsString = ui.readFileAsString(inputFile1);
String input2AsString = ui.readFileAsString(inputFile2);
//continue with your logic
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句