Java 删除文本文件的特定部分

Java 删除文本文件的特定部分,java,java.util.scanner,filereader,Java,Java.util.scanner,Filereader,所以我有一个存储日期的程序 这是计算文件中日期数的函数 public static int getLineCount() throws FileNotFoundException { System.out.println("Line count called"); int datenumber = 0; int attrnumber = 0; try { Scanner readLine = new Scanner(new FileReader(

所以我有一个存储日期的程序

这是计算文件中日期数的函数

public static int getLineCount() throws FileNotFoundException {

    System.out.println("Line count called");
    int datenumber = 0;
    int attrnumber = 0;
    try {
        Scanner readLine = new Scanner(new FileReader(dates));
        readLine.useDelimiter("<>");
        while (readLine.hasNext()) {

            readLine.next();

            if (attrnumber == 3) {

                datenumber++;
                attrnumber = 0;

            } else {
                attrnumber++;
            }
        }
    } catch (IOException e) {
        System.out.print("Cannot read file!");
    }
    ;
    System.out.println("Line count is: " + datenumber);
    return datenumber;

}
public static int getLineCount()引发FileNotFoundException{
System.out.println(“调用行计数”);
int datenumber=0;
整数=0;
试一试{
Scanner readLine=新扫描仪(新文件阅读器(日期));
readLine.useDelimiter(“”);
while(readLine.hasNext()){
readLine.next();
如果(attrnumber==3){
datenumber++;
属性数=0;
}否则{
数字++;
}
}
}捕获(IOE异常){
System.out.print(“无法读取文件!”);
}
;
System.out.println(“行计数为:“+datenumber”);
返回日期编号;
}
这就是文件的外观

14<>7<>2014<>sdfsdf<>14<>4<>2016<>asdas<>
1472014SDFSDF1442016SDAS
格式为DaymonthyerName

假设我有3个日期存储,我想删除第二个日期,我如何才能做到这一点

我可以在这里使用相同的代码,但是一旦它到达我想要删除的位置,它会以某种方式删除数据吗

我有

DAY1<>MONTH1<>YEAR1<>NAME1<>DAY2<>MONTH2<>YEAR2<>NAME2<>DAY3<>MONTH3<>YEAR3<>NAME3<>
Day1月1日年份名称Day2月2日年份名称Day3月3日年份名称3
我想要

DAY1<>MONTH1<>YEAR1<>NAME1<>DAY3<>MONTH3<>YEAR3<>NAME3<>
DAY1<>MONTH1<>YEAR1<>NAME1<>DAY3<>MONTH3<>YEAR3<>NAME3<>
Day1月1年1名称Day3月3年3名称
公共静态void main(字符串参数[]){
字符串str=“Day1月1年1名1 Day2月2年2名2日3月3日3年3名”;
系统输出println(删除(str,“,4,2));
}
/**
* 
*@param句子你的主句
*@param delimeter delimeter哪个句子包含like
*@param range行的范围,在本例中,您可以看到每行包含4项,因此其范围为4
*@param removed_range,whing range被删除,例如2 range等
*@返回
*/
公共静态字符串移除(字符串语句、字符串定义器、int范围、int移除范围){
字符串str=“”;
ArrayList items=新建ArrayList();
if(句子包含(delimeter)){
items.addAll(数组.asList(句子.split(delimeter));
}
int-cnt=0;
用于(字符串项:项){
如果(cnt=移除的范围*范围)
str+=项目+测力计;
cnt++;
}
返回str;
}
结果:

Day1月1年1名称Day3月3年3名称
DAY1<>MONTH1<>YEAR1<>NAME1<>DAY3<>MONTH3<>YEAR3<>NAME3<>