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

时间:2008-10-13 06:07:47

标签: java command-line

如何处理从文件输入的Java信息。例如:假设您有一个文件input.txt。该文件的内容是: abcdefghizzzzjklmnop azzbcdefghijklmnop

我希望将信息放入字符串的参数数组中,以便下面的代码输出“abcdefghizzzzjklmnop”

class Test {
    public static void main(String[] args) {
        System.out.println(args[0]);
    }
}

我一直在使用的命令抛出一个超出绑定异常的数组。这个命令是:

  
    

java Test< input.txt中

  

非基于文件的参数可以正常工作。即。 java测试你好,一个java测试< input.txt你好。

更多信息: 我已经尝试将文件内容全部放在一行上,看看\ n \ r \ n字符是否可能搞乱了。这似乎没有帮助。

另外,我不能使用bufferedreader类,因为这是针对学校的程序,它必须与我的教授shell脚本一起使用。他在课堂上对此进行了讨论,但我没有写下来(或者我找不到它)。

任何帮助?

3 个答案:

答案 0 :(得分:9)

您应该能够从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 ();
        }
    }
}

答案 1 :(得分:2)

似乎每当你发布关于你的问题的正式问题时,你都会想出来。

通过“&lt; input.txt”输入文件将其输入为用户输入而不是命令行参数。在我解释为什么bufferedreader类无法工作之后不久就意识到了这一点。

原来你必须使用缓冲的读者类。

答案 2 :(得分:-1)

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

您可以编写一个可以读取文件的脚本,生成一个临时脚本,其中java命令会根据您的需要进行操作。