2016-11-12 76 views
0

我想要做的是讓我的程序從文件而不是標準控制檯輸入讀取輸入測試用例並將輸出寫回到另一個文件。 這裏談到的問題發揮作用,如果我嘗試使用文件時,它顯示顯示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 

回答

0

可以使用java命令行arguements給輸入程序。

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]); 
相關問題