首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 文件插入指定行數據:讀寫臨時文件替換法完整實現

     編輯:Java 相關知識

Java 無法直接在文件中間插入數據,唯一可行方案是「讀原文件 → 寫臨時文件(插入目標行)→ 刪除原文件 → 重命名臨時文件」。本文提供完整、可直接使用的工具類 FileInsertRow,支援指定行號插入任意字串。

核心邏輯

  1. 建立臨時文件 File.createTempFile("name", ".tmp")。
  2. 使用 BufferedReader 逐行讀取原文件,PrintWriter 寫入臨時文件。
  3. 行號計數器 i 從 1 開始;讀到目標行號前,先寫入待插入字串,再寫入原行。
  4. 讀寫完成後 flush()、關閉流,刪除原文件 inFile.delete(),重命名臨時文件 outFile.renameTo(inFile)。

代碼亮點

  • 異常拋出由調用者統一處理,符合庫設計規範。
  • 使用 PrintWriter.println() 自動處理跨平台換行符。
  • 主方法支援命令列參數:java FileInsertRow <file> <lineNo> <content>,便於腳本調用。

使用示例

FileInsertRow tool = new FileInsertRow();
tool.insertStringInFile(new File("data.txt"), 3, "新插入的第三行");
// 原第 3 行及之後內容整體後移

注意事項

  • 大文件會佔用較多磁盤 I/O 與臨時空間,考慮分塊處理或記憶體映射優化。
  • 若程式中途崩潰,原文件已刪除、臨時文件未重命名,可能導致數據丟失;生產環境建議先備份或採用「寫新文件→原子重命名」模式。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved