使用java更新特定单元格的csv文件
嗨,我有一个小问题,我认为我只是在一行代码上没有得到正确的语法。基本上,我可以写入 csv 文件并使用字符串标记器查找特定记录,但它不会更新/编辑该记录的指定单元格。记录保持不变。请帮忙....
Hi i have a small problem and think i'm just not getting the correct syntax on one line of code. basically, i can write into my csv file and find a specific record using string tokenizer but it is not updating/editing the specified cells of that record. the record remains the same. please help....
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我在java中使用了 http://opencsv.sourceforge.net
这个解决方案对我有用,
干杯!
I have used http://opencsv.sourceforge.net in java
This solution worked for me,
Cheers!
我使用下面的代码,将一个字符串替换为另一个字符串,它的工作方式完全符合我需要的方式:
I used the below code where I will replace a string with another and it worked exactly the way I needed:
您正在做这样的事情:
这不是编辑文件,而是从文件中的一行创建一个新字符串。
String
实例是不可变的,因此您进行的replace
调用会返回一个新字符串,它不会修改原始字符串。使用允许您读取和写入文件的文件流 - 即 RandomAccessFile 或(更简单地)写入新文件,然后用新文件替换旧文件
在伪代码中:
另外,请看一下 这个问题。有一些库可以帮助您处理 csv。
You're doing something like this:
This is not editing the file, it's creating a new string from a line in the file.
String
instances are immutable, so thereplace
call you're making returns a new string it does not modify the original string.Either use a file stream that allows you to both read and write to the file - i.e. RandomAccessFile or (more simply) write to a new file then replace the old file with the new one
In psuedo code:
Also, please take a look at this question. There are libraries to help you deal with csv.
CSV 文件只是一个文件。如果您正在阅读它,它不会被更改。
因此,写下您的更改!
你有3种方法。
1
2
使用RandomAccess 文件写入文件的特定位置。
3
使用 CSV 解析器的可用实现之一(例如 http://commons.apache.org/sandbox/ csv/)
它已经支持您所需要的并公开了高级 API。
CSV file is just a file. It is not being changed if you are reading it.
So, write your changes!
You have 3 ways.
1
2
Use RandomAccess file to write into specific place of the file.
3
Use one of available implementations of CSV parser (e.g. http://commons.apache.org/sandbox/csv/)
It already supports what you need and exposes high level API.