java如何删除txt文件的某一行?RandomAccessFile可以吗?

来源:百度知道 编辑:UC知道 时间:2024/05/31 18:44:29
java的io流问题,现在有5行文字,如:
百度 (第一行)
新浪 (第二行)
搜狐 (第三行)
雅虎 (第四行)
腾讯 (第五行)
我现在想删除第二行的数据,即"新浪",具体应该怎么操作,最好能有代码
希望有高手帮忙

删除不好做,因为你是一个文件内容的删除。
可以用字符串数组来保存每一行的值,删除了之后,再重新保存进去。
可以这样做:比如说你的文件路径:c:/a.txt
1.File file = new File("c:/a.txt");
2.BufferedReader reader = new BufferedReader(file);
3.byte[] strValue = new byte[(int)file.length()];
4.String str = reader.read(strValue);//按文件大小一次读入
5.String rows = str.split("\r\n");//按换行符拆分,即数组的每一条,对应文件每一行的内容。
6.如果要删除按条件删除某一行,只需要判断字符串数组是否存在这一行了,如果存在,替换为“”即可。
7.Writer writer = new FileWriter(file);
8.
for(int i=0;i<rows.length;i++){
writer.write(rows[i]);
}

只是分析了一下,具体步骤还是你来完成了。。

思路:
给一个退到行尾命令,给一个换行命令,给一个从此行首到尾的标识,替换成“”(空),给个DEL命令,代码自己查。