java向文件中加入新行,java按行寫入文件

本文目錄一覽:

java文件讀寫,在一個已經有內容的文件中,追加第一行,如何做到?

我的想法是可以用RandomAccessFile,這個類的seek方法,想在文件的哪個位置插入內容都行。所以你的第一行就不在話下了。但是,這個會覆蓋你文件中插入位置後面的內容。相當於我們在輸入的時候,按了鍵盤的insert鍵盤。所以,像你這種情況只能用臨時文件來存儲原有的內容,然後把要插入的數據寫入文件,再把臨時文件的內容追加到文件中。\x0d\x0avoid insert(String filename,int pos,String insertContent){//pos是插入的位置\x0d\x0a File tmp = File.createTempFile(“tmp”,null);\x0d\x0a tmp.deleteOnExit();\x0d\x0a try{\x0d\x0a RandomAccessFile raf = new RandomAccessFile(filename,”rw”);\x0d\x0a FileOutputStream tmpOut = new FileOutputStream(tmp);\x0d\x0a FileInputStream tmpIn = new FileInputStream(tmp);\x0d\x0a raf.seek(pos);//首先的話是0\x0d\x0a byte[] buf = new byte[64];\x0d\x0a int hasRead = 0;\x0d\x0a while((hasRead = raf.read(buf))0){\x0d\x0a //把原有內容讀入臨時文件\x0d\x0a tmpOut.write(buf,0,hasRead);\x0d\x0a \x0d\x0a }\x0d\x0a raf.seek(pos);\x0d\x0a raf.write(insertContent.getBytes());\x0d\x0a //追加臨時文件的內容\x0d\x0a while((hasRead = tmpIn.read(buf))0){\x0d\x0a raf.write(buf,0,hasRead);\x0d\x0a }\x0d\x0a }\x0d\x0a}

java 如何向txt文件中的某一行繼續寫入

Java的RandomAccessFile提供對文件的讀寫功能,與普通的輸入輸出流不一樣的是RamdomAccessFile可以任意的訪問文件的任何地方。這就是「Random」的意義所在。

相關API:

RandomAccessFile(String

name, String

mode)構造器,模式分為r(只讀),rw(讀寫)等

RandomAccessFile.readLine()方法實現對一整行的讀取,並重新定位操作位置

RandomAccessFile.write(byte[] b)用於位元組內容的寫入

示例如下:

RandomAccessFile raf = new RandomAccessFile(“f:/1.txt”, “rw”);

int targetLineNum = 10;

int currentLineNum = 0;

while(raf.readLine() != null){

    if(currentLineNum == targetLineNum){ // 定位到目標行時結束

break;

    }

    currentLineNum++;

}

raf.write(“\r\ninsert”.getBytes());

raf.close();

java文件讀寫 在一個已經有內容的文件中追加第一行 如何做到

如果要在已有內容的文件開頭插入內容就只能先把原內容讀出來,然後先寫入要插入的東西,然後再把原內容寫回去,然後關閉輸出流

如果要在已有內容的文件末尾追加內容就比較簡單了

在創建FileOutputStream對象的時候第二個參數給個true,就表示續寫文件,而非覆蓋文件已有內容了

new FileOutputStream(file, true)

原創文章,作者:UPWS,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/141601.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
UPWS的頭像UPWS
上一篇 2024-10-08 17:42
下一篇 2024-10-08 17:53

相關推薦

發表回復

登錄後才能評論