Там, кажется, немного непонимания того, что делает System.out.println. System.out.println отправляет String в Outputstream (stdout) программы Java. Поэтому он возвращается в операционную систему. Это обычно используется, чтобы сделать вывод видимым для пользователя, но также и для других приложений. Другое приложение может прочитать это с помощью System.in.read.
В вашем случае вы хотели бы использовать вывод в том же приложении, что необязательно, потому что приложение знает свои собственные данные.
Если вам нужно сохранить историю выведенных данных, вы можете, конечно, сохранить историю в своем приложении - (как указано в комментарии), украшенный PrintStream может выполнить эту работу.
Если вы новичок на Java, может быть проще написать новый метод, который хранит вашу историю. Например. Вы можете добавить следующие строки в ваш класс:
private static LinkedList<String> stdoutHistory;
public static void betterPrintln(String s)
{
System.out.println(s);
stdoutHistory.add(s);
}
// this method returns the last printed output
public static String getLastOutput()
{
return stdoutHistory.get(stdoutHistory.count()-1);
}
, а затем вызвать этот метод, чтобы напечатать что-то
String message = "Hi"; System.out.println (сообщение); Строка last = message; – Ascalonian
Это не то, что я хочу. Если значение отправлено другой функцией или чем-то еще, что я не могу редактировать, я не могу получить значение. Извините, я знал этот метод, но это не то, что я хочу. И поэтому я передал литерал, а не переменную. – frunkad
Вы хотите динамически получать историю всех сообщений, отправленных для печати? – Skeptor