首页 > 编程知识 正文

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

时间:2023-12-29 20:31:45 阅读:330617 作者:ARTB

本文目录一览:

java文件读写,在一个已经有内容的文件中,追加第一行,如何做到?

我的想法是可以用RandomAccessFile,这个类的seek方法,想在文件的哪个位置插入内容都行。所以你的第一行就不在话下了。但是,这个会覆盖你文件中插入位置后面的内容。相当于我们在输入的时候,按了键盘的insert键盘。所以,像你这种情况只能用临时文件来存储原有的内容,然后把要插入的数据写入文件,再把临时文件的内容追加到文件中。x0dx0avoid insert(String filename,int pos,String insertContent){//pos是插入的位置x0dx0a File tmp = File.createTempFile("tmp",null);x0dx0a tmp.deleteOnExit();x0dx0a try{x0dx0a RandomAccessFile raf = new RandomAccessFile(filename,"rw");x0dx0a FileOutputStream tmpOut = new FileOutputStream(tmp);x0dx0a FileInputStream tmpIn = new FileInputStream(tmp);x0dx0a raf.seek(pos);//首先的话是0x0dx0a byte[] buf = new byte[64];x0dx0a int hasRead = 0;x0dx0a while((hasRead = raf.read(buf))0){x0dx0a //把原有内容读入临时文件x0dx0a tmpOut.write(buf,0,hasRead);x0dx0a x0dx0a }x0dx0a raf.seek(pos);x0dx0a raf.write(insertContent.getBytes());x0dx0a //追加临时文件的内容x0dx0a while((hasRead = tmpIn.read(buf))0){x0dx0a raf.write(buf,0,hasRead);x0dx0a }x0dx0a }x0dx0a}

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("rninsert".getBytes());

raf.close();

java文件读写 在一个已经有内容的文件中追加第一行 如何做到

如果要在已有内容的文件开头插入内容就只能先把原内容读出来,然后先写入要插入的东西,然后再把原内容写回去,然后关闭输出流

如果要在已有内容的文件末尾追加内容就比较简单了

在创建FileOutputStream对象的时候第二个参数给个true,就表示续写文件,而非覆盖文件已有内容了

new FileOutputStream(file, true)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。