我正在爲Reader
和Writer
創建一個抽象綁定類,其中用戶不必單獨引用每一個。什麼時候讀者/作家/流被確定爲開放?
例如:我有一個FileStream
,它裏面有一個FileReader
和FileWriter
。
我提到的問題是優化班級。我知道由於併發,我不能同時打開兩個流,但是我需要將它們初始化到某個地方,而不會在整個地方泄露數據。
只要你初始化它們,流/讀者/作者是否被分類爲開放的,或者只有在第一次讀/寫開始後纔打開'管道'?我在看的JavaDoc並沒有看到任何關於這裏的時候居然流開闢...
對於那些誰不明白我在問(忽略的try-catch塊):
// does my reader become OPEN here?
BufferedReader br = new BufferedReader(new FileReader("foobar.txt"));
// or here, now that I have performed the first operation.
br.readLine();
兩者都實現'Closeable',所以如果在'try-with'中使用,將會自動關閉請參閱https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html –
_「我知道由於併發,我不能同時打開兩個流「_ - 你是什麼意思?你的意思是輸入和輸出在同一個文件上? _「沒有任何數據泄漏」 - 爲什麼你會認爲這會發生?請顯示一些實際的代碼並解釋一個實際的問題。就目前而言,您的問題似乎基於一些誤解,並且太抽象而無法回答。 –
@JimGarrison我沒有例子,但是我正在做一個單線程,如果在同一時間完成同步問題。沒有用處寫入文件,然後試圖讀取緩衝區正在查看不同的東西時。我的問題沒有提到明確的問題,而是提到了(三)類的抽象性質,因此是的,我寫了一個抽象問題。然而,它並不含糊,我相信一個答案很可能會被回答。 – finnrayment