如何解决Java如何将文本追加到file.txt的顶部
在开始写入之前,可以使用RandomAccessFile来使用方法来 光标并将其0th
定位seek(long position)
。
如本主题所述
RandomAccessFile f = new RandomAccessFile(new File("yourFile.txt"), "rw");
f.seek(0); // to the beginning
f.write("Jennifer".getBytes());
f.close();
正如下面许多评论所指出的,此解决方案从一开始就 覆盖 了文件内容。要完全替换内容,可能必须 删除 并 重写 File 。
解决方法
我需要通过Java将文本添加到文本文件的开头。
例如我有带有数据的test.txt文件:
Peter
John
Alice
我需要添加(到文件顶部):
Jennifer
它应该是:
Jennifer
Peter
John
Alice
我有一部分代码,但是将数据追加到文件末尾,我需要将其添加到文件顶部:
public static void irasymas(String irasymai){
try {
File file = new File("src/lt/test.txt");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile(),true);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(irasymai+ "\r\n");
bw.close();
}
catch (IOException e) {
e.printStackTrace();
}
}
我已经尝试过了,但这只会从文件中删除所有数据,而不会插入任何文本:
public static void main(String[] args) throws IOException {
BufferedReader reader = null;
BufferedWriter writer = null;
ArrayList list = new ArrayList();
try {
reader = new BufferedReader(new FileReader("src/lt/test.txt"));
String tmp;
while ((tmp = reader.readLine()) != null)
list.add(tmp);
OUtil.closeReader(reader);
list.add(0,"Start Text");
list.add("End Text");
writer = new BufferedWriter(new FileWriter("src/lt/test.txt"));
for (int i = 0; i < list.size(); i++)
writer.write(list.get(i) + "\r\n");
} catch (Exception e) {
e.printStackTrace();
} finally {
OUtil.closeReader(reader);
OUtil.closeWriter(writer);
}
}
谢谢你的帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。