gpt4 book ai didi

java - 如何用 Java 替换大文件的第一行?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:14:33 26 4
gpt4 key购买 nike

我想用 Java 删除文本文件的第一行。这个文件有几千兆字节,我不想复制。使用来自 this post 的建议,我正在尝试使用 RandomAccessFile 这样做,但是它写得太多了。

这是我的代码:

RandomAccessFile raInputFile = new RandomAccessFile(inputFile, "rw");
origHeaderRow = raInputFile.readLine();
raInputFile.seek(0);
raInputFile.writeChars(Strings.repeat(" ",origHeaderRow.length()));
raInputFile.close();

如果你想要一些示例输入和输出,会发生以下情况:

之前:

first_name,last_name,age
Doug,Funny,10
Skeeter,Valentine,9
Patti,Mayonnaise,11
Doug,AlsoFunny,10

之后:

                        alentine,9
Patti,Mayonnaise,11
Doug,AlsoFunny,10

在此示例中,在大多数编辑器中,文件正确地以 24 个空格开头,但 48 个字符(包括换行符)已被替换。粘贴到这里后我看到奇怪的问号东西。双倍大小的替换让我觉得涉及编码的事情变得一团糟,但我尝试了 writeUTF 并得到了相同的结果。

最佳答案

char 在 Java 中是 2 个字节。

改用writeBytes

raInputFile.writeBytes(Strings.repeat(" ",origHeaderRow.length()));

来自 JavaDoc看起来正是您要找的东西。

关于java - 如何用 Java 替换大文件的第一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7126895/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com