Java CSV文件更新

Java CSV文件更新,java,csv,opencsv,Java,Csv,Opencsv,我想更新一个包含一百万条记录的.csv文件。我想在同一个文件中更新,而不创建另一个文件。我正在使用Opencsv。我找不到任何方法来更新.csv文件。如果有人能帮我,那就太好了。 为了澄清,让我们假设这些小的.csv文件: a,b,c,d 1,2,3,4 5,6,7,8 12,13,14,15 a,b,c,d,e,f 1,2,3,4, ,17 5,6,7,8,16, 12,13,14,15, 初始csv文件: a,b,c,d 1,2,3,4 5,6,7,8 12,13,14,15 a,b,

我想更新一个包含一百万条记录的.csv文件。我想在同一个文件中更新,而不创建另一个文件。我正在使用Opencsv。我找不到任何方法来更新.csv文件。如果有人能帮我,那就太好了。 为了澄清,让我们假设这些小的.csv文件:

a,b,c,d
1,2,3,4
5,6,7,8
12,13,14,15
a,b,c,d,e,f
1,2,3,4, ,17
5,6,7,8,16,
12,13,14,15,
初始csv文件:

a,b,c,d
1,2,3,4
5,6,7,8
12,13,14,15
a,b,c,d,e,f
1,2,3,4, ,17
5,6,7,8,16,
12,13,14,15,
所需的csv文件:

a,b,c,d
1,2,3,4
5,6,7,8
12,13,14,15
a,b,c,d,e,f
1,2,3,4, ,17
5,6,7,8,16,
12,13,14,15,

基本上,你不能那样做

由于csv不使用固定长度的记录,大多数更改都需要在文件中上下移动数据。如果不完全重写文件,则无法完成此操作

1,2,3,4
5,6,7,8
...
8
更改为
10
需要将整个文件中从该位置开始的每个字节上移一个位置


为了达到编辑文件的效果,通常需要将文件复制到新名称,并在复制过程中进行更改。然后,您将重命名这两个文件,以便新文件替换旧文件。

通常,文件系统不允许更新该文件。你需要重写这个文件。因为即使你把所有的东西都放在一个文件里。它将以多段形式编写。因此,如果要更改,文件段将被损坏。所以你需要重写每一件事。

更新意味着你要做什么。请解释我必须为字段添加新的标题字段和数据。假设目前我有一个文件,有4个标题a、b、c、d和4行数据。我想添加一个带有一些数据的新标题“e”。通常文件系统不允许更新文件。你需要重写这个文件。因为即使你把所有的东西都放在一个文件里。它将以多段形式编写。因此,如果要更改,文件段将被损坏。所以你需要重写每一件事。为什么不创建一个新文件,并在最后替换为现有文件呢?谢谢你的回复。我想找到一些方法避免重写文件,因为它包含一百万条记录。在程序中读取一百万条记录并将其写回需要一些时间,这是我想要避免的。@user3387358-如果选择固定长度的记录格式,可以使用。或者-使用数据库。我必须添加一个包含一些数据的新标题,而不必更改现有标题。我有一个包含4个标题a、b、c、d和4行数据的文件。我想添加一个带有一些数据的新标题“e”。@user3387358-我不太明白-你说你有100万条记录-现在你有4条???如果解决了你的问题,你可以考虑在文件的末尾添加新的记录。这只是想告诉你我想要什么,我不能在这里写100万条记录。请看我的问题以作澄清。我已经更新了。好的,thnx,那么我想除了重新读写整个文件之外,没有其他方法了。是的,绝对没有办法。