Java 無法直接在文件中間插入數據,唯一可行方案是「讀原文件 → 寫臨時文件(插入目標行)→ 刪除原文件 → 重命名臨時文件」。本文提供完整、可直接使用的工具類 FileInsertRow,支援指定行號插入任意字串。
File.createTempFile("name", ".tmp")。BufferedReader 逐行讀取原文件,PrintWriter 寫入臨時文件。i 從 1 開始;讀到目標行號前,先寫入待插入字串,再寫入原行。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 行及之後內容整體後移