如何处理从文件输入的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脚本一起使用。他在课堂上对此进行了讨论,但我没有写下来(或者我找不到它)。
任何帮助?
答案 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命令会根据您的需要进行操作。