我正在使用反射來在運行時執行方法。但是,當方法不返回任何內容時,我想讀取被調用方法打印的最後一行,並將其存儲在String變量中。有人可以幫我解決這個問題,因爲我處於完全修復的狀態。 目前我正在通過使用System.setOut來做到這一點。有沒有更好的方式來做到這一點。以下是我目前使用的代碼。Java:讀取方法的輸出
PrintStream originalOutStream = System.out;
System.setOut(new PrintStream(new FileOutputStream("D:/myFile.txt")));
smething(2);// a method which prints something
System.setOut(originalOutStream);
FileInputStream fr = new FileInputStream("D:/myFile.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fr));
String strLine;
//Read File Line By Line
while ((strLine = br.readLine()) != null) {
.. Do the necessary processing
}
請貼,你已經嘗試了示例代碼。 –
你想從STDOUT中讀取最後一行,對吧?我不確定它是否可能,但它與反射無關,只是I/O。 – Andy
您嘗試調用的方法是否事先已知?有沒有可能這種方法既不打印也不返回任何東西? –