zoukankan      html  css  js  c++  java
  • 根据开始字符串和结束字符串截取文件生成另一个文件(日志处理)【我】

    根据开始字符串和结束字符串截取文件生成另一个文件

    package file;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;
    
    public class ReadTxt2 {
    
        public static void main(String[] args) throws Exception {
            getDesired();
        }
        
        /**
         * 取出想要的文件
         * @date 2019年4月1日 上午11:26:36 
         * @throws Exception
         */
        public static void getDesired() throws Exception {// 输入文件路径
        
            List<String> temp = new ArrayList<>();
            //输入文件
    //        File f = new File("D:\a\b\in.txt");
            File f = new File("D:\a\info_log-2019-04-10h2.log");
    //        InputStreamReader reader = new InputStreamReader(new FileInputStream(f),"GBK");
            InputStreamReader reader = new InputStreamReader(new FileInputStream(f),"utf-8");
            BufferedReader br = new BufferedReader(reader);
            String str=null;
            
            //下面按行读。我实现的其实就是变相的分行打印,如果有更好的方法请大家指教
            //输出文件
            OutputStreamWriter os = new OutputStreamWriter(new FileOutputStream("D:\a\b\out11.txt"),"utf-8");
            BufferedWriter bw = new BufferedWriter(os);
            PrintWriter out = new PrintWriter(bw);
            //定义开始写入新文件标记
            boolean start = false;
            //结束写入标记
            boolean end = false;
    //        从  包含文字 :第一三四三章 展现力量(第四更!) 的行开始复制写入到新文件中
            String matchStart = "20190323964的处理预计线程数为:4,";
            String matchEnd = "scheduler_Worker-8的--consume time----任务耗时:2363317 毫秒";
            while((str=br.readLine())!=null){
                
                if (!start) {
                    if (str.contains(matchStart)) {
                        start = true;
                        System.out.println("找到开始字符串"+str);
                    }
                }
                
                if (str.contains(matchEnd)) {
                    end = true;
                    System.out.println("找到结束字符串"+str);
                }
                
                if (start) {
                    if (end) {
                        break;
                    }
                    //符合标记,逐行写入到新文件
                    out.println(str);
                }
            }
            
            br.close();
            reader.close();
            
            bw.close();
            os.close();
            out.close();
        }
            
    }
  • 相关阅读:
    Linux 安装nginx
    Linux服务器svn与项目同步
    Linux服务器安装svn
    Thinkphp5模板继承
    Thinkphp5 Route用法
    一键切换hosts文件
    lnmp手动新建虚拟机
    wamp 配置虚拟主机
    百度编辑器
    百度编辑器:上传图片二
  • 原文地址:https://www.cnblogs.com/libin6505/p/10695799.html
Copyright © 2011-2022 走看看