java 如何向txt文件中的某一行继续写入

2024-12-14 12:56:05
推荐回答(4个)
回答1:

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();


回答2:

FileWriter(String fileName, boolean append)
根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象
你仔细看看构造方法,有一个就是你象要的,比如上面的

你可以先查找要插入的位置,然后用
write
public void write(String str,
int off,
int len)
throws IOException写入字符串的某一部分。

参数:
str - 字符串
off - 相对初始写入字符的偏移量
len - 要写入的字符数
这个方法

回答3:

可以将BufferedWriter流和FileWriter流连接在一起,然后使用BufferedWriter将流数据写到目的地。
例如:
FileWriter tofile=new FileWriter("Student.txt");
BufferedWriter out=new BufferedWriter(tofile);

回答4:

用RandomAccessFile不行吗?