Java文件输入作为命令行参数

3
如何在Java中处理从文件输入的信息。例如:假设您有一个名为input.txt的文件,该文件的内容为:abcdefghizzzzjklmnop azzbcdefghijklmnop。
我希望将信息放入字符串参数数组中,以便以下代码输出“abcdefghizzzzjklmnop”。请参考以下示例代码:
class Test {
    public static void main(String[] args) {
        System.out.println(args[0]);
    }
}

我一直在使用的命令会抛出数组越界异常。这个命令是:

java Test < input.txt

非基于文件的参数可以正常工作,例如:java Test hello 和 java Test < input.txt hello。
更多信息: 我尝试将文件内容全部放在一行上,以查看 \n \r 字符是否可能搞砸了什么。但那似乎没有帮助。
此外,我不能使用 bufferedreader 类,因为这是为学校编写的程序,必须与我的教授的 shell 脚本配合使用。他在课堂上讲解过这个问题,但我没有记录下来(或者我找不到了)。
有任何帮助吗?
3个回答

10

你应该可以从System.in中读取输入数据。

这里有一些快速且简单的示例代码:javac Test.java; java Test < Test.java

class Test
{
    public static void main (String[] args)
    {
        byte[] bytes = new byte[1024];
        try
        {
            while (System.in.available() > 0)
            {
                int read = System.in.read (bytes, 0, 1024);
                System.out.write (bytes, 0, read);
            }
        } catch (Exception e)
        {
            e.printStackTrace ();
        }
    }
}

2
似乎每当您发布一个关于您的问题的正式问题时,您就会解决它。
通过“<input.txt”输入文件将其作为用户输入而不是作为命令行参数输入。在我解释为什么BufferedReader类不起作用后不久,我意识到了这一点。
结果发现您必须使用BufferedReader类。

-1

我不确定你为什么想将文件内容作为命令行参数传递,除非你在做一些奇怪的测试。

你可以编写一个脚本来读取你的文件,在其中生成一个临时脚本,其中java命令后跟着你的需求。


他有点困惑;显然他的教授写了一个脚本,将一个文件写入到他应用程序的stdin中,他认为这是一种特殊形式的命令行参数。 - John Millikin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接