Mam gniazdo do którego zapisuję dane postaci i niektóre dane bajtowe. W przypadku danych postaciowych łatwiej jest użyć PrintWriter
. W przypadku danych o bajtach surowych łatwiej jest pisać bezpośrednio do OutputStream
. Więc w całym moim kodu, mam segmenty tak:Czy istnieje sposób zamknięcia programu Writer bez zamykania strumienia bazowego?
Writer writer = new PrintWriter(outputStream);
writer.write(someText);
...
writer.flush();
// No call to writer.close(), because that would close the underlying stream.
Dopóki jestem uważać, aby nie pisać do tego Writer
po rozpoczęciu zapisu strumienia w jakiś inny sposób, to jest w porządku. Ale wolałbym mieć pewność, że dostanę IOException
, jeśli przypadkowo napiszę do strumienia (tak jak bym to zrobił, gdybym go zamknął).
Czy istnieje sposób, aby jawnie zapobiec przyszłym zapisom do Writer
bez zamykania podstawowego strumienia?