java 根据log文件中是否关键信息,来删除文档 报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

java 根据log文件中是否关键信息,来删除文档 报错

2020-05-26 13:56:00 417 1

"

在E:/desktop/1文件夹下有很多文件,见下
<span class=""img-wrap""><img referrerpolicy=""no-referrer"" data-src=""/img/bVoLto"" src=""https://cdn.segmentfault.com/v-5e8d8dec/global/img/squares.svg"" alt=""clipboard.png"" title=""clipboard.png"" />
需要对这些log文件进行处理,其中有些log文件中包含了很多无用信息,对于这些包含多无用信息的log文件处理是将这些文件删除掉。文件中的内容见下,比如

下面是我写的程序,但不能删除文件,求大神指点下!
谢谢。。。

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

public class ProcessMain {

    static String str = "";
    
    public static void main(String[] args) throws Exception{
        String path = "E:/desktop/1";        
        getDirList(path);
    }
    
    public static void read(String filepath)throws Exception{
        
        //read folder and iterate every subfile
        File f = new File(filepath);
        FileReader reader = new FileReader(f);
        BufferedReader br = new BufferedReader(reader);
        while((str = br.readLine()) != null){
            if(str.contains("NoID")){
                f.delete();
            }

        }
        br.close();
    }
    
    public static void getDirList(String path) throws Exception {
        File f = new File(path);
        if(f != null){
            if(f.isDirectory()){
              File[] fs = f.listFiles();
              for (File file : fs) {
                  if (file.isFile()) {
                      if(file.length() > 0)
                          read(file.toString());
                  } 
                  else
                      getDirList(file.getPath());
              }    
            }
        }
    }
}
" ![image.png](https://ucc.alicdn.com/pic/developer-ecology/e6d5ba683a80451eac7112b2c4dc33bc.png)
取消 提交回答
全部回答(1)
  • 因为相信,所以看见。
    2020-05-27 10:17:16

    "

    主要改了下 read 方法,写了注释,其它地方你自己看着改呵。
    这里 read 改名叫 checkToDelete 比较合适

    <code class=""java"">    public static void read(File f) throws Exception { //read folder and iterate every subfile // 直接传参数就传 File 对象,不需要重新生成了 // File f = new File(filepath); FileReader reader = new FileReader(f); BufferedReader br = new BufferedReader(reader);

        boolean shouldDelete = false;
        String str;
        while ((str = br.readLine()) != null) {
            if (str.contains("NoID")) {
                // 这里你的文件还是打开的,所以不能删除
                // 在这里应该做个标记,关闭之后再来删除
                // f.delete();
                shouldDelete = true;
                break;
            }
    
        }
        br.close();
    
        // 如果标记删除了,在 `close()` 之后就可以删了
        if (shouldDelete) {
            f.delete();
        }
    }</code></pre>"
    

    image.png

    0 0
相关问答

42

回答

[@徐雷frank][¥20]什么是JAVA的平台无关性

大河人家 2018-10-29 23:55:20 147605浏览量 回答数 42

170

回答

惊喜翻倍:免费ECS+免费环境配置~!(ECS免费体验6个月活动3月31日结束)

豆妹 2014-10-29 17:52:21 234059浏览量 回答数 170

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 341480浏览量 回答数 8

13

回答

[@饭娱咖啡][¥20]我想知道 Java 关于引用那一块的知识

心意乱 2018-10-31 18:44:12 143686浏览量 回答数 13

119

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 302813浏览量 回答数 119

22

回答

爬虫数据管理【问答合集】

我是管理员 2018-08-10 16:37:41 149031浏览量 回答数 22

24

回答

阿里云开放端口权限

xcxx 2016-07-20 15:03:33 660863浏览量 回答数 24

31

回答

[@倚贤][¥20]刚学完html/css/js的新手学习servlet、jsp需要注意哪些问题?

弗洛伊德6 2018-10-27 21:52:43 148170浏览量 回答数 31

43

回答

【精品问答集锦】Python热门问题

小六码奴 2019-05-30 15:27:34 144828浏览量 回答数 43

10

回答

[@墨玖tao][¥20]为什么流式处理框架都是 java 写成的,JVM 是不是在流和批存在着特殊优势。还有分布式资源调度,感觉Mesos 的成长速度跟不上 Yarn。这是为什么?

管理贝贝 2018-10-23 13:18:03 137811浏览量 回答数 10
+关注
因为相信,所以看见。
阿里,我所有的向往
0
文章
1438
问答
问答排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载