如何将标准输入转换为字符串?

时间:2011-03-04 15:29:10

标签: java string stdin

我想知道如何将标准输入转换为字符串。例如,我有一个带有n个字母的txt文件 - 所有这些我想读成一个字符串。

只是为了确保:标准输入是指为程序提供.txt作为输入。

帮助将不胜感激!

5 个答案:

答案 0 :(得分:3)

  

我有一个文件,我想将其数据存储在一个字符串中。

可以使用commons-io

来完成
String content = FileUtils.readFileToString(file);

complete example

要从stdin读取字符串,您可以使用扫描仪。如果您想要整个文件,请使用while (scanner.hasNextLine())

String firstLineFromStdin = new Scanner(System.in).readLine();

答案 1 :(得分:0)

您要做的是将文件传输到您的应用程序中......

java your.package < file.txt

然后您可以通过Java的System.in正常读取该文件。

答案 2 :(得分:0)

首先,您是否希望将文件名作为参数提供给您的程序。或者整个文件作为输入?在第一种情况下,您可以:

"program filename.txt" 

在你输入的第二个:

"program < filename.txt".

在第一种情况下,文件名是输入。而你的程序必须自己打开一个文件。在第二种情况下,文件的内容作为文件的输入给出。

如果你只提供文件名,那么文件名在你的main函数的参数中(“main(String args [])”部分的数组args。使用这个文件名你可以使用之前建议的readFileToString来转换将文件内容转换为字符串。

如果要使用文件输入“program&lt; filename.txt”的其他方法,请使用a InputStream。有关InputStream http://download.oracle.com/javase/6/docs/api/java/io/InputStream.html

的更多信息,请参阅文档

你还提到你对Java很新。我希望你知道java文档的存在吗? http://download.oracle.com/javase/6/docs/api/index.html包含许多您可能想知道的信息。

答案 3 :(得分:0)

我最终使用了这个:

    String s = "";

    while (!StdIn.isEmpty()){

        s = s + StdIn.readChar();

    }

我使用以下命令运行程序:java program&lt; a.text

答案 4 :(得分:-1)

您可以尝试类似

的内容
System.setIn(new FileInputStream(filename));

以下是redirecting standard i/o

的示例