java中RandomAccessFile如何删除txt文件的某一行的信息和修改某一行的信息!希望能帮我实现!
1个回答
展开全部
删除不好做,因为你是一个文件内容的删除。
可以用字符串数组来保存每一行的值,删除了之后,再重新保存进去。
可以这样做:比如说你的文件路径: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]);
}
只是分析了一下,具体步骤还是你来完成了。。
RandomAccessFile raf = new RandomAccess("wenjian.txt");
char ch[] = new char[3];
char to[] = {'s','s','x'};
boolean get = false;
while(get){
raf.readChars(ch);
if(ch[0]=='d' && ch[1]=='d' && ch[2]=='s'){
get = true;
}
}
raf.seek(raf.getFilePointer() -6 );
raf.writeChars(to);
这个代码就是把wenjian.txt中出现的第一个dds修改成ssx。
可以用字符串数组来保存每一行的值,删除了之后,再重新保存进去。
可以这样做:比如说你的文件路径: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]);
}
只是分析了一下,具体步骤还是你来完成了。。
RandomAccessFile raf = new RandomAccess("wenjian.txt");
char ch[] = new char[3];
char to[] = {'s','s','x'};
boolean get = false;
while(get){
raf.readChars(ch);
if(ch[0]=='d' && ch[1]=='d' && ch[2]=='s'){
get = true;
}
}
raf.seek(raf.getFilePointer() -6 );
raf.writeChars(to);
这个代码就是把wenjian.txt中出现的第一个dds修改成ssx。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询