Mam funkcję, która przyjmuje obiekt określonego typu i PrintStreamdo którego ma zostać wydrukowany i wyprowadza reprezentację tego obiektu. Jak mogę przechwycić dane wyjściowe tej funkcji w ciągu? W szczególności chcę go używać jako toStringmetody.
@tobr z pewnością jest dobrą zasadą praktyczną, ale ByteArrayOutputStream.close()„ nie ma wpływu ”, ponieważ nie ma żadnych zasobów do zwolnienia poza tablicą zapasową, którą zajmie się garbage collector.
ByteArrayOutputStreamma toString(String charsetName), ale akceptuje tylko argument String. Zwróć również uwagę, że ByteArrayOutputStream jest zsynchronizowany , co prawdopodobnie nie jest pożądane
Możesz skonstruować PrintStream z ByteArrayOutputStream przekazanym do konstruktora, którego możesz później użyć do pobrania tekstu zapisanego do PrintStream.
ByteArrayOutputStream os =newByteArrayOutputStream();PrintStream ps =newPrintStream(os);...String output = os.toString("UTF8");
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.