java操作csv文件

用java怎么才能在csv文件指定位置写入新的数据,csv原始数据保留。其实我是需要在csv文件的最后一列的地方增加一列数据,而其他部分数据不需要变化。这个csv文件可能... 用java怎么才能在csv文件指定位置写入新的数据,csv原始数据保留。
其实我是需要在csv文件的最后一列的地方增加一列数据,而其他部分数据不需要变化。这个csv文件可能会比较大,如果全部重新写到另一个文件的话比较费时。

一楼的建议好像不太对,如果用seek(long pos)把指针指向文件最后的话实际上是在原始记录的末行开始添加新行数据,而不是在文件的每一行末列添加一项数据.
展开
 我来答
shiva1981
2010-07-01 · TA获得超过773个赞
知道小有建树答主
回答量:638
采纳率:0%
帮助的人:761万
展开全部
看楼主比较懂,
参阅RandomAccessFile类
先用seek(long pos)把指针指向文件最后
然后视你的数据用
writeBytes(String s) //有汉字什么的
writeChars(String s) //一般的字符串
writeUTF(String str) //有UTF-8的字符
写入数据
jackmawt
2010-07-02
知道答主
回答量:43
采纳率:0%
帮助的人:17.1万
展开全部
File f = new File(path);
BufferedWriter bw = new BufferedWriter(new FileWriter(f, true));
bw.write(txt);
bw.write("\r\n");
bw.close();
new BufferedWriter(new FileWriter(f, true))
上面中的true是决定文件是追加还是重写.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
198901245631
推荐于2016-04-10 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1744万
展开全部
cvs格式实际上就是字符串,直接通过英文”,“来进行的间隔显示,所以直接写入的时候直接在流中添加英文标点逗号即可。
实现思路:就是将需要保留的内容写入另外一个cvs文件中在满足条件处进行增加、删除、修改操作。
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null;
OutputStreamWriter pw = null;//定义一个流
try {
String file = "D:/test/test.xml";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
pw = new OutputStreamWriter(new FileOutputStream(“D:/New.cvs”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.cvs”实例
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
if(!str.indexOf("<end>")){//判断如果不满足cvs行条件就删除
pw.write(str);//将要写入文件的内容,可以多次write
}
};
bre.close();
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式