Java文件读取 删除指定一行

import java.io.BufferedReader; 
import java.io.BufferedWriter; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.io.OutputStreamWriter; 
import java.util.ArrayList; 
import java.util.regex.Matcher; 
import java.util.regex.Pattern;

public class test3 {

public static void main(String[] args) throws IOException {

    //获取路径
    String relativelyPath=System.getProperty("user.dir");
    String filed = relativelyPath+"\\Log\\qwqlog.log";
    File file = new File(filed); 
    System.out.println(file);

    //将读取出来的数据存入list集合、一个备份、一个正常运行

    while(true){
        //判断文件是否存在、并且有内容
        if(file.exists() && !(file.exists() && file.length() == 0)) {
            System.out.println("文件存在并且有内容");

            String str = null;  
            try {
                ArrayList<String> list = new ArrayList<>();
                //BufferedReader是可以按行读取文件  
                FileInputStream inputStream = new FileInputStream(filed);  
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));  

                while((str = bufferedReader.readLine()) != null)  
                {  
                    //如果有空格、去掉空格
                    if(str.contains(" ")) {
                        Pattern p = Pattern.compile("\\s*|\t|\r|\n");
                        Matcher m = p.matcher(str);
                        str = m.replaceAll("");
                    }
                    //如果不是空串、添加到list、然后提交
                    if(!str.equals("")) {
                        System.out.println(str);
                        list.add(str);
                        /**
                         * 可以在添加到list后、根据需求操作文件中第一条数据
                         */
                        System.out.println("提交");
                    }
                } 
                bufferedReader.close();
                inputStream.close();
                //删除第一行、、写回到文本
                list.remove(0);
                FileOutputStream fileOutputStream = new FileOutputStream(filed); 
                OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream);
                BufferedWriter bw = new BufferedWriter(outputStreamWriter); 

                if(list.size() != 0)
                    for (String string : list) {
                        bw.write(string);
                        bw.newLine();
                        System.out.println(string);
                    }
                else if(list.size() == 0) {
                    bw.write("");
                }
                bw.flush();
                bw.close();
                //file.delete();
            }catch (Exception e) {
                e.printStackTrace(); 
            }
        }else {
            System.out.println("文件不存在、或者文件无内容");
            break;
        }
    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值