作者whitebase (finn)
看板java
標題[問題] 寫入檔案,有辦法寫入某行後方接續寫入?
時間Fri May 23 15:02:02 2014
各位大大好,
想請問一下關於寫檔,
是可以在不覆蓋的情況下接續往下寫入,
但有辦法辦到整個檔案以寫入完備畢後,
接續的往某一行的後方寫嗎?
範例如下:
123
456
789
原檔案長這樣,
有辦法改成:
123
456ABC
789
這個樣子嗎?可接在某一行之後,而不是只接在最後一行之後
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.120.203.73
※ 文章網址: http://webptt.com/m.aspx?n=bbs/java/M.1400828525.A.00F.html
1F:→ popcorny:不行 05/23 15:06
2F:推 PsMonkey:樓上「不行」應該是底層檔案操作,work around 應該有 05/23 15:25
3F:推 popcorny:"不覆蓋的情況"不行.. work around的方法就是"覆蓋" XD 05/23 16:14
4F:推 kingofsdtw:自己寫個API實作跳行?雖然多次操作不是真的只讀一次... 05/23 16:32
5F:→ danny8376:實際上也只能從特定位置開始覆蓋 然後後方接著重寫而已 05/23 16:59
6F:→ AmosYang: 辦法,有; 簡易且通用的辦法,沒有。 05/23 17:49
7F:推 lovdkkkk:可試試 FileChannel, 看起來有提供相關 API 05/23 18:14
8F:→ danny8376:FileChannel也只能從指定位置複寫 無法直接做到原PO要求 05/23 21:23
9F:→ lovdkkkk:原來只能定位而已 0rz 05/23 21:41
10F:→ danny8376:因為這種東西沒啥好通解 所以JAVA自然不會幫你做啊 05/23 22:35
11F:→ whitebase:orz感謝各位 05/24 02:04
12F:→ whitebase:等待哪位大大救援 05/24 02:14
13F:推 gmoz:有辦法 > 要自己寫 05/24 09:16
14F:→ Killercat:er...我不是有提過用split+stringbuffer嗎 = = 05/24 20:55
15F:推 luoqr:不過為什麼不能覆蓋? 05/24 21:24
16F:推 asship:自己實作,寫log功能? 05/24 22:31
17F:→ Killercat:其實正規的做法是用java的stream 05/25 04:45