Jak możemy przekierować dane wyjściowe konsoli eclipse do pliku? Mogę:
Run Configuration
->Commons
->Select a file
.- Użyj
System.setOut(PrintStream)
iSystem.setErr(PrintStream)
.
Problem z 1) polega na tym, że muszę nagrywać dane wyjściowe konsoli do różnych plików zamiast do jednego pliku.
Problem z 2) polega na tym, że przechowuje tylko dane wyjściowe konsoli wygenerowane przez System.out.println()
lub ślad stosu zgłoszonego wyjątku. Nie przechwytuje innych rodzajów danych wyjściowych, np. Ostrzeżeń log4j itp.
Jak możemy programowo przekierować dane wyjściowe konsoli do różnych plików?
${NAME}
), a następnie zrobi to samo, co run. Następnie użyj$NAME
jako wartości dla pliku wyjściowego. może?Odpowiedzi:
Idź do uruchomienia jako i wybierz
Run Configurations
->Common
aw Standardowym wejściu i wyjściu możesz również wybrać Plik.źródło
echo $TTY
i określ, co zwróci jako plik. Następnie terminal będzie odzwierciedlał zawartość konsoli Eclipse.Możesz użyć „zmiennej” wewnątrz nazwy pliku wyjściowego, na przykład:
bieżąca data:
Lub możesz również użyć system_property lub env_var, aby określić coś dynamicznego (albo jeden musi być określony jako argumenty)
źródło
Możesz ustawić wyjście System.out programowo, wykonując:
Edytować:
W związku z tym, że to rozwiązanie bazuje na a
PrintStream
, możemy włączyć autoFlush, ale zgodnie z dokumentacją :Więc jeśli nie zostanie napisana nowa linia, pamiętaj, aby
System.out.flush()
ręcznie.(Dzięki Robert Tupelo-Schneck)
źródło
System.out.flush()
, aby uniknąć ewentualnego pominięcia niektórych wyników.Aby rozwiązać problem, używam zmiennej $ {string_prompt}. Pokazuje okno dialogowe wprowadzania danych, gdy aplikacja jest uruchomiona. Mogę ręcznie ustawić datę / godzinę w tym oknie dialogowym.
Przesuń kursor na koniec ścieżki pliku.
Kliknij zmienne i wybierz string_prompt
Wybierz Zastosuj i uruchom
źródło
Możemy to zrobić, wyznaczając zmienną klasy System w następujący sposób
System.setOut (new PrintStream (new FileOutputStream ("Ścieżka do pliku wyjściowego"))). Musisz także zamknąć lub opróżnić zmienną 'out' (System.out.close () lub System.out.flush ()), aby nie stracić części danych wyjściowych.
Źródło: http://xmodulo.com/how-to-save-console-output-to-file-in-eclipse.html
źródło