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

看板java作者 (finn)時間10年前 (2014/05/23 15:02), 編輯推噓7(7010)
留言17則, 11人參與, 最新討論串1/2 (看更多)
各位大大好, 想請問一下關於寫檔, 是可以在不覆蓋的情況下接續往下寫入, 但有辦法辦到整個檔案以寫入完備畢後, 接續的往某一行的後方寫嗎? 範例如下: 123 456 789 原檔案長這樣, 有辦法改成: 123 456ABC 789 這個樣子嗎?可接在某一行之後,而不是只接在最後一行之後 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.120.203.73 ※ 文章網址: http://www.ptt.cc/bbs/java/M.1400828525.A.00F.html

05/23 15:06, , 1F
不行
05/23 15:06, 1F

05/23 15:25, , 2F
樓上「不行」應該是底層檔案操作,work around 應該有
05/23 15:25, 2F

05/23 16:14, , 3F
"不覆蓋的情況"不行.. work around的方法就是"覆蓋" XD
05/23 16:14, 3F

05/23 16:32, , 4F
自己寫個API實作跳行?雖然多次操作不是真的只讀一次...
05/23 16:32, 4F

05/23 16:59, , 5F
實際上也只能從特定位置開始覆蓋 然後後方接著重寫而已
05/23 16:59, 5F

05/23 17:49, , 6F
辦法,有; 簡易且通用的辦法,沒有。
05/23 17:49, 6F

05/23 18:14, , 7F
可試試 FileChannel, 看起來有提供相關 API
05/23 18:14, 7F

05/23 21:23, , 8F
FileChannel也只能從指定位置複寫 無法直接做到原PO要求
05/23 21:23, 8F

05/23 21:41, , 9F
原來只能定位而已 0rz
05/23 21:41, 9F

05/23 22:35, , 10F
因為這種東西沒啥好通解 所以JAVA自然不會幫你做啊
05/23 22:35, 10F

05/24 02:04, , 11F
orz感謝各位
05/24 02:04, 11F

05/24 02:14, , 12F
等待哪位大大救援
05/24 02:14, 12F

05/24 09:16, , 13F
有辦法 > 要自己寫
05/24 09:16, 13F

05/24 20:55, , 14F
er...我不是有提過用split+stringbuffer嗎 = =
05/24 20:55, 14F

05/24 21:24, , 15F
不過為什麼不能覆蓋?
05/24 21:24, 15F

05/24 22:31, , 16F
自己實作,寫log功能?
05/24 22:31, 16F

05/25 04:45, , 17F
其實正規的做法是用java的stream
05/25 04:45, 17F
文章代碼(AID): #1JVl9j0F (java)
文章代碼(AID): #1JVl9j0F (java)