从文件读取标准(控制台)输入并将输出打印到其他文件

时间:2016-11-12 08:20:55

标签: java file-io

我要做的是让我的程序从文件而不是标准控制台输入读取输入测试用例,并将输出写回另一个文件。 这里出现了问题,如果我试图使用文件提供输入,则显示 java.lang.NullPointerException ,但另一方面,如果我提供正确的输出我试图提供自定义标准输入(使用cmd)并将输出打印到文件。

这是我的示例程序:

public class Roman
{
static private final String INPUT = "Q4.in";  
static private final String OUTPUT = "Q4.out";  

  // open I/O files  


public static void main(String[] args) 
{
    FileInputStream instream = null;  
  PrintStream outstream = null;  

  try {  
      instream = new FileInputStream(INPUT);  
      outstream = new PrintStream(new FileOutputStream(OUTPUT));  
      System.setIn(instream);  
      System.setOut(outstream);  
  } catch (Exception e) {  
      System.err.println("Error Occurred.");  
  }  
    int i;
    Scanner sc=new Scanner(System.in);

    int T=sc.nextInt();

    Num2Rom[] tc=new Num2Rom[T];

    for(i=0;i<T;i++)
    {  tc[i]=new Num2Rom();  }

    System.out.println(T+"\n");

    for(i=0;i<T;i++)
    {  tc[i].display(i+1);  }
  }
}

ArrayList<String> wordList;

Num2Rom()
{ 
    Scanner sc = new Scanner(System.in);
    while(sc.hasNext()){
    String numeral = sc.nextLine();
    System.out.println("print"+numeral);
    numeral = numeral.toUpperCase();

    String[] words = numeral.split(" ");
    wordList = new ArrayList<>(Arrays.asList(words));  } 
}

输入格式为:

2
Eight
Twenty

1 个答案:

答案 0 :(得分:0)

您可以使用java命令行参数为程序提供输入。

class A{  
public static void main(String args[]){  

for(int i=0;i<args.length;i++)  
System.out.println(args[i]);  

}  
}  

将参数转换为所需类型,因为以字符串格式接收参数。

例如,如果你想要一个integere,你可以使用

进行转换
int value=Integer.parseInt($args[0]);