假设我有一个位于/mypath/sampletext.txt的txt文件。如何在Java中使用以下内容将新行附加到文件的开头,同时保留原始文本文件的内容?:
String startStr ="--Start of File--";
寻找一种方法来执行此操作,而无需创建中间第二文件,并在可能的情况下仅对现有文件进行修改。
答案 0 :(得分:0)
首先读取文件内容,将新行添加到contents = newLine + contents
之类的新行,然后将新的conent写入同一文件中(不要追加)。
答案 1 :(得分:-1)
1
// true:将文字附加到fie FileWriter write = new FileWriter(“file_path”,true); writer.write(内容);
//打开randomFile和“rw”
randomFile = new RandomAccessFile(“file_path”,“rw”);
//文件长度
long fileLength = randomFile.length();
//指向结束索引
randomFile.seek(文件长度);
//写
randomFile.writeBytes(内容);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file,true)));
out.write(conent);
答案 2 :(得分:-2)
新答案已更新......
在这里,我使用了更多的FileIO类和可能是他们的一个已被弃用的API但是如果您了解Java FileIO类,则可以轻松修复它。
这里我在文件的开头添加新行,而不是将其附加到文件的末尾..
如果有任何问题请再次评论....
试试这个,我认为它会对你有帮助..
try
{
//Append new line in existing file.
FileInputStream fr = new FileInputStream("onlineSoultion.txt");
DataInputStream dr = new DataInputStream(fr);
String startStr = "--Start of File--\n";
//String startStr;
while (dr.available() > 0) {
startStr += dr.readLine();
//System.out.println(startStr);
}
dr.close();
fr.close();
FileOutputStream writer = new FileOutputStream("onlineSoultion.txt");
writer.write((new String()).getBytes());
writer.close();
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("onlineSoultion.txt", true)));
out.println(startStr);
out.close();
}