如何使用JAVA SE 7从控制台向system.in发送null

如何使用JAVA SE 7从控制台向system.in发送null,java,io,Java,Io,我试图编写一个简单的类,从控制台获取输入,然后将其输出到平面文件 目前,我需要键入一个特定的字符串,以指示控制台的输入已经完成。我使用的是一个BufferedRead对象,它在从非控制台流读取EOF时返回NULL,并且希望从控制台执行类似操作。谁能给我指点怎么做 是否有一个简单的转义序列需要我从键盘发送/输入到System.in 代码如下所示: package writeflestr; 导入java.io.*; 公共类WriteFileStr { /** *@param指定命令行参数 */

我试图编写一个简单的类,从控制台获取输入,然后将其输出到平面文件

目前,我需要键入一个特定的字符串,以指示控制台的输入已经完成。我使用的是一个BufferedRead对象,它在从非控制台流读取EOF时返回NULL,并且希望从控制台执行类似操作。谁能给我指点怎么做

是否有一个简单的转义序列需要我从键盘发送/输入到System.in

代码如下所示:

package writeflestr;
导入java.io.*;
公共类WriteFileStr
{
/**
*@param指定命令行参数
*/
公共静态void main(字符串[]args)
{
//确保我们有一个命令行参数
如果(args.length!=1)
{
println(“UASAGE:java WriteFileStr文件名”);
}
其他的
{   
String[]inputBuffer=新字符串[100];
int stCount=0;
System.out.println(“输入一些字符串:”);
try(BufferedReader in=new BufferedReader(new InputStreamReader(System.in)))
{
String st=新字符串();
布尔eof=假;
做
{
if(!(st=in.readLine()).equalsIgnoreCase(“EOF”))
{
inputBuffer[stCount++]=st;
}
其他的
{
eof=真;
}
}而(!eof);
}
捕获(IOE异常)
{
系统输出打印ln(e);
}
try(BufferedWriter wrer=new BufferedWriter(new FileWriter(args[0]))
{      
对于(int i=0;i

为什么不使用名为“end”或“null”的字符串,并使用equals()函数比较来终止输入并继续?如果要结束输入,请在终端中键入应用程序,在*nix上使用Ctrl-D。在Windows上,它应该是Ctrl-Z,但我不太确定。或者,您可以使用控制台中的
java…
运行一个带有准备好的输入的文件,将其输入到您的程序中。
package writefilestr;

import java.io.*;

public class WriteFileStr
{

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)
    {
        // Ensure that the we have a command line parameter
        if (args.length != 1)
        {
            System.out.println("UASAGE: java WriteFileStr filename");
        }
        else
        {   
            String[] inputBuffer = new String[100];
            int stCount = 0;

            System.out.println("Input Some Strings:");
            try(BufferedReader in = new BufferedReader(new InputStreamReader(System.in)))
            {
                String st = new String();
                boolean eof = false;

                do
                {
                    if (!(st = in.readLine()).equalsIgnoreCase("EOF"))
                    {
                        inputBuffer[stCount++] = st;
                    }
                    else
                    {
                        eof = true;
                    }

                } while(!eof);
            }
            catch (IOException e)
            {
                System.out.println(e);
            }

            try(BufferedWriter wr = new BufferedWriter(new FileWriter(args[0])))
            {      
                for (int i = 0; i < stCount; i++)
                {
                    wr.write(inputBuffer[i]); 
                    wr.newLine();
                }
            }
            catch (FileNotFoundException e)
            {
                System.out.println("FileNotFoundException : "+e);
            }
            catch (IOException e)
            {
                System.out.println("IOException : "+e);
            }
        }
    }
}