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