当前位置: 首页 > 知识库问答 >
问题:

Java语言如何将文本附加到文件顶部。txt[重复]

羊舌承
2023-03-14

我需要通过Java添加文本到文本文件的乞丐。

例如,我有测试。包含数据的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);
        }
    }

谢谢你的帮助。

共有3个答案

容飞掣
2023-03-14

以下代码适用于我。同样,它显然会替换文件开头的字节。如果您可以确定将提前完成多少字节的替换,那么您可以使用此选项。否则,请按照前面的答案进行操作,或者看看在Java文本文件的开头写什么

    String str = "Jennifer";  
    byte data[] = str.getBytes();       

    try {                           
            RandomAccessFile f = new RandomAccessFile(new File("src/lt/test.txt"), "rw");
            f.getChannel().position(0);         
            f.write(data);
            f.close();
    } catch (IOException e) {       
            e.printStackTrace();
    }
葛学民
2023-03-14

在开始写入之前,您可以使用RandomAccessFile,使用seek(long position)方法将光标搜索到第0个位置。

如本文所述

RandomAccessFile f = new RandomAccessFile(new File("yourFile.txt"), "rw");
f.seek(0); // to the beginning
f.write("Jennifer".getBytes());
f.close();

编辑:正如下面许多评论所指出的,这个解决方案从一开始就覆盖了文件内容。要完全替换内容,可能必须删除并重新写入文件。

林德华
2023-03-14
File mFile = new File("src/lt/test.txt");
FileInputStream fis = new FileInputStream(mFile);
BufferedReader br = new BufferedReader(fis);
String result = "";
String line = "";
while( (line = br.readLine()) != null){
 result = result + line; 
}

result = "Jennifer" + result;

mFile.delete();
FileOutputStream fos = new FileOutputStream(mFile);
fos.write(result.getBytes());
fos.flush();

这个想法是全部阅读,在前面添加字符串。删除旧文件。使用指定的字符串创建新文件。

 类似资料:
  • 问题内容: 在Linux中将文本附加到文件的最简单方法是什么? 我看了这个问题,但是可接受的答案使用了一个附加程序(),我相信应该有一个更简单的方法或类似方法。 问题答案: cat >> filename This is text, perhaps pasted in from some other source. Or else entered at the keyboard, doesn’t

  • 问题内容: 我需要通过Java将文本添加到文本文件的开头。 例如我有带有数据的test.txt文件: 我需要添加(到文件顶部): 它应该是: 我有一部分代码,但是将数据追加到文件末尾,我需要将其添加到文件顶部: 我已经尝试过了,但这只会从文件中删除所有数据,而不会插入任何文本: 谢谢你的帮助。 问题答案: 在开始写入之前,可以使用RandomAccessFile来使用方法来 查找 光标并将其定位。

  • 问题内容: 我试图将滚动条附加到“文本”字段,但无法这样做。这是代码段: 这段代码在我的文本字段旁边放置了一个非常小的滚动条(并且非常小,我的意思是您可以看到向上和向下箭头,但中间没有看到)。当文本字段填满时,我可以使用它滚动,但是至少有一种方法可以设置滚动条的高度,以使其看起来与文本字段的高度相同吗? 问题答案: Tkinter具有三个 几何管理器 :包装,网格和位置。 通常建议将包装和网格放在

  • 问题内容: 我目前有2个在同一个文本文件上初始化的。当完成第一个文本文件的读取后,我使用第二个文本从顶部开始另一个遍历该文件。必须多次通过同一个文件。 我知道,但是它需要在调用之前并且需要知道文件的大小,这是我认为我不必费心的事情。 有想法吗?套餐?图书馆?码? 谢谢TJ 问题答案: 仅创建一个新的要从顶部读取的内容有什么缺点?我希望操作系统能够缓存该文件(如果足够小)。 如果您担心性能,是否证明

  • 问题内容: 我该怎么做才能将其附加到文件中而不是覆盖? 问题答案: 使用附加:

  • 问题内容: 我正在尝试创建一个将条目添加到json文件的函数。最终,我想要一个看起来像 等。这就是我所拥有的: 这确实会创建一个条目,例如。但是,如果我再次使用此函数(使用不同的名称和网址),第一个函数将被覆盖。我需要怎么做才能将第二个(第三个…)条目附加到第一个? 编辑 :对此问题的第一个答案和评论已经指出了我在写块中未使用的明显事实。不过,我看不出该怎么做。例如,以下内容显然不会起作用: 问题