如何用java修改txt的最后一行数据

比如test.txt,内容是:
111
222
333
我现在需要把333换成444,333默认是在最后一行,请问各位大佬们怎么才能修改,最好有相关代码,谢谢各位啦

6个回答

图片说明

 public static void main(String[] args) throws IOException{
        FileReader fr = new FileReader(new File("e:/Test/java/test1.txt"));
        BufferedReader br = new BufferedReader(fr);
        String s;
        StringBuilder sb = new StringBuilder();
        int i = 0;
        //读文件内容
        while((s=br.readLine())!=null){
            sb.append(s).append("\n");
        }
        //对内容进行截取去掉最后一个\n,然后截取去掉最后一行,最后加入你想要的内容
        System.out.println(sb.substring(0, sb.toString()
                .substring(0, sb.length()-1).lastIndexOf("\n"))+"\n4444");
        fr.close();
        br.close();
    }
FlyAngle1
我是一只小小小小小鸟 忘记了,再写入到文件就好了
2 年多之前 回复
qq_38049154
梦想川流不息 他这个好像只是添加
2 年多之前 回复

RandomAccessFile f = null;
try {
f = new RandomAccessFile("E:\saascode\Test\src\cn\test\a.txt","rw");
f.seek(f.length()-1);
f.writeChars("555");
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
f.close();
} catch (IOException e) {
e.printStackTrace();
}
}

RandomAccessFile f = null;
try {
f = new RandomAccessFile("E:\saascode\Test\src\cn\test\a.txt","rw");
f.seek(f.length()-1);
f.writeChars("555");
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
f.close();
} catch (IOException e) {
e.printStackTrace();
}
}

avenccssddnn
ipple1986 回复梦想川流不息: 傻了??只是提供方式给你。。然不成像你采纳的那种方式。一行一行读到最后一行?傻了?
2 年多之前 回复
qq_38049154
梦想川流不息 你这是去掉最后一个字符换成555,不过也可以用,只要算最后一行有多少字符就可以了
2 年多之前 回复
  public static void replaceTxtByStr(String oldStr,String replaceStr,String path) {
        String temp = "";
        try {
            File file = new File(path);
            FileInputStream fis = new FileInputStream(file);
            InputStreamReader isr = new InputStreamReader(fis);
            BufferedReader br = new BufferedReader(isr);
            StringBuffer buf = new StringBuffer();

            // 保存该行前面的内容
            for (int j = 1; (temp = br.readLine()) != null
                    && !temp.equals(oldStr); j++) {
                buf = buf.append(temp);
                buf = buf.append(System.getProperty("line.separator"));
            }

            // 将内容插入
            buf = buf.append(replaceStr);

            // 保存该行后面的内容
            while ((temp = br.readLine()) != null) {
                buf = buf.append(System.getProperty("line.separator"));
                buf = buf.append(temp);
            }

            br.close();
            FileOutputStream fos = new FileOutputStream(file);
            PrintWriter pw = new PrintWriter(fos);
            pw.write(buf.toString().toCharArray());
            pw.flush();
            pw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

还好只是一个破小文件,要怎么玩都可以。你说最后只能替换成555.这里的替换逻辑你自己随便玩。
比如原来有 key=${XXX},你只想替换XXX为 abc,随便找个JAVA stringutils replace即可。。这些还要教 ?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐