[問題] 寫入檔案,有辦法寫入某行後方接續寫入?

作者: whitebase (finn)   2014-05-23 15:02:02
各位大大好,
想請問一下關於寫檔,
是可以在不覆蓋的情況下接續往下寫入,
但有辦法辦到整個檔案以寫入完備畢後,
接續的往某一行的後方寫嗎?
範例如下:
123
456
789
原檔案長這樣,
有辦法改成:
123
456ABC
789
這個樣子嗎?可接在某一行之後,而不是只接在最後一行之後
作者: popcorny (畢業了..@@")   2014-05-23 15:06:00
不行
作者: PsMonkey (痞子軍團團長)   2014-05-23 15:25:00
樓上「不行」應該是底層檔案操作,work around 應該有
作者: popcorny (畢業了..@@")   2014-05-23 16:14:00
"不覆蓋的情況"不行.. work around的方法就是"覆蓋" XD
作者: kingofsdtw (不能閒下來!!)   2014-05-23 16:32:00
自己寫個API實作跳行?雖然多次操作不是真的只讀一次...
作者: danny8376 (釣到一隻猴子@_@)   2014-05-23 16:59:00
實際上也只能從特定位置開始覆蓋 然後後方接著重寫而已
作者: AmosYang (泛用人型編碼器)   2014-05-23 17:49:00
辦法,有; 簡易且通用的辦法,沒有。
作者: lovdkkkk (dk)   2014-05-23 18:14:00
可試試 FileChannel, 看起來有提供相關 API
作者: danny8376 (釣到一隻猴子@_@)   2014-05-23 21:23:00
FileChannel也只能從指定位置複寫 無法直接做到原PO要求
作者: lovdkkkk (dk)   2014-05-23 21:41:00
原來只能定位而已 0rz
作者: danny8376 (釣到一隻猴子@_@)   2014-05-23 22:35:00
因為這種東西沒啥好通解 所以JAVA自然不會幫你做啊
作者: whitebase (finn)   2014-05-24 02:04:00
orz感謝各位
作者: whitebase (finn)   2014-05-24 02:14:00
等待哪位大大救援
作者: gmoz ( This can't do that. )   2014-05-24 09:16:00
有辦法 > 要自己寫
作者: Killercat (殺人貓™)   2014-05-24 20:55:00
er...我不是有提過用split+stringbuffer嗎 = =
作者: luoqr (.....)   2014-05-24 21:24:00
不過為什麼不能覆蓋?
作者: asship (孤帆遠影)   2014-05-24 22:31:00
自己實作,寫log功能?
作者: Killercat (殺人貓™)   2014-05-25 04:45:00
其實正規的做法是用java的stream

Links booklink

Contact Us: admin [ a t ] ucptt.com