首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java语言。如何将文本追加到file.txt顶部

Java语言。如何将文本追加到file.txt顶部
EN

Stack Overflow用户
提问于 2013-05-21 16:11:34
回答 1查看 57.5K关注 0票数 25

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

例如,我有一个包含数据的test.txt文件:

代码语言:javascript
复制
Peter
John
Alice

我需要添加(到文件顶部):

代码语言:javascript
复制
Jennifer 

它应该是:

代码语言:javascript
复制
Jennifer
Peter
John
Alice

我有部分代码,但它将数据附加到文件的末尾,我需要让它将文本添加到文件的顶部:

代码语言:javascript
复制
    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();                
        }
    }

我已经尝试过了,但这只会删除文件中的所有数据,而不会插入任何文本:

代码语言:javascript
复制
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);
        }
    }

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

发布于 2013-05-21 16:34:52

代码语言:javascript
复制
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();

我们的想法是全部读完,在前面加上字符串。删除旧文件。使用已删除的字符串创建新文件。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16665124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档