我想知道是否有方法來確定是否有任何流在程序中打開?重寫一個文件,該程序已經使用
我正在使用我的一些代碼和另一些代碼,我的目標是能夠多次寫入同一個文件,每次擦除它並重寫。但是,我認爲在某個地方,屬於這個其他組的代碼可能忘記關閉一個流,或者Java無法處理它,也許?它總是在文件的末尾寫入,而不是在空白文件的開頭。它不會刪除,如果它已被程序打開,我不能重命名它。
如果它是一個開放流問題,我想關閉流(我已經通過代碼,並且似乎無法找到打開的流)。或者,如果Java無法處理它,有沒有一種好的方法(除了製作銷燬方法)能讓我重置/殺死那些重新生成的對象?
或者有沒有辦法可能...設置文件爲空,並刪除它?或者我應該嘗試打開文件,擦除它並將偏移量設置爲0?
任何提示將是很好
作爲一個開始,讓我提供這個。文件寫入默認情況下不是附加模式,這是您必須明確設置的內容。因此,提到「它總是在文件末尾寫入」的部分會讓人相信這個其他代碼,或者你正在告訴它要追加。源代碼和錯誤消息的歡迎。 – demongolem
讓我也分享這個SO鏈接關於檢查一個文件是否已經打開,以便您可以評估情況http://stackoverflow.com/questions/1390592/java-check-if-file-is-already-open – demongolem
其他代碼告訴它附加,是的。雖然我的目標是不修改他們的代碼(因爲他們發佈更新,而且我將不得不始終更改他們的代碼),但我試圖將其設置爲false,並且他們寫入文件的方式無法有效地寫入,除非將其設置爲真正。我正在研究一種擦除文件的方法,可能使用將特定位置的指定位置寫入文件的寫入方法。但是,我不確定我應該怎麼寫?零或空格? @demongolem我不太確定這個鏈接如何是非常有用的,除了告訴我這可能是不可能的? – Sean