java中RandomAccessFile怎样删除指定行,有直接的函数实现吗?
2个回答
展开全部
没有直接的函数实现.
因为RandomAccessFile是继承Object类,而且只实现了DataOutput, DataInput, Closeable这三个接口(也就是只拥有这三个接口里声明的方法操作和从Object继承来的方法操作)
一个个分析:
1.Object是所有类的父类,不存在你想要的那个方法(函数)
2.DataOutput 接口用于将任意 Java 基本类型转换为一系列字节,并将这些字节写入二进制流
所有方法都是writeXXX
3.DataInput 接口用于从二进制流中读取字节,并重构所有 Java 基本类型数据。--跟 DataOutput 成对应关系 所有方法都是readXXX
因为RandomAccessFile是继承Object类,而且只实现了DataOutput, DataInput, Closeable这三个接口(也就是只拥有这三个接口里声明的方法操作和从Object继承来的方法操作)
一个个分析:
1.Object是所有类的父类,不存在你想要的那个方法(函数)
2.DataOutput 接口用于将任意 Java 基本类型转换为一系列字节,并将这些字节写入二进制流
所有方法都是writeXXX
3.DataInput 接口用于从二进制流中读取字节,并重构所有 Java 基本类型数据。--跟 DataOutput 成对应关系 所有方法都是readXXX
展开全部
删除不好做,因为你是一个文件内容的删除。
可以用字符串数组来保存每一行的值,删除了之后,再重新保存进去。
可以这样做:比如说你的文件路径: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]);
}
只是分析了一下,具体步骤还是你来完成了。。
可以用字符串数组来保存每一行的值,删除了之后,再重新保存进去。
可以这样做:比如说你的文件路径: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]);
}
只是分析了一下,具体步骤还是你来完成了。。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询