场景: Android开发看log时文件过大, 超过2个G, NotePad++无法打开;

前提: 将log文件用AndroidStudio打开(也可用UltraEdit, 关闭 "编辑时使用临时文件" 功能), 可以查看了, 但, 搜索功能不如NotePad++好用; 故想拆分一下log, 只看某一区间的log;

实现: Java实现的, 截取splitStartString与splitEndString之间的Log, 输出在同文件夹下的SplitResult.txt中;

结果: 还行, 2G的log遍历一遍截取保存, 耗时6秒左右;

(写的不好看, 命名不规范, 凑合用吧; 优化空间很大, 欢迎大佬们指点)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;public class Main {//输出结果的文件名,与输入文件相同目录public final static String splitFileName = "SplitResult.txt";//输入文件的文件夹绝对路径public final static String inputFileFolder = "2个多G的Log文件的父目录(文件所在位置的文件夹的绝对路径)";//拼接输入文件的绝对路径(方便复制粘贴)public final static String inputFile =inputFileFolder +"\\"+ "超过2个G的Log.txt(目标文件,与inputFileFolder拼接起绝对路径, 方便复制粘贴 )"; //截取字符串的开头public final static String splitStartString = "此处填写开始字符串";//截取字符串的结尾public final static String splitEndString = "此处填写结束字符串";public static void main(String[] args) {// TODO Auto-generated method stubreadFile(new File(inputFile));}//将开头与结尾之间的字符串截取下来存到splitFileName中的文件里static public void readFile(File file) {      FileInputStream fileInputStream = null;BufferedReader br = null;BufferedWriter bw = null;try {long startTime = System.currentTimeMillis();fileInputStream = new FileInputStream(file);br = new BufferedReader(new InputStreamReader(fileInputStream));File outputFile = new File(file.getParentFile().getAbsolutePath(),splitFileName);System.out.println("输出文件名:" + "\n" + outputFile.getAbsolutePath());bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(outputFile.getAbsolutePath()),"utf-8"));String line = null;boolean matchStart = false;boolean matchEnd = false;while((line = br.readLine()) != null){//返回值为null表示读完//匹配开始字符串, 匹配到后将matchStart置为trueif (!matchStart && line.contains(splitStartString)) {matchStart = true;System.out.println("Start line matched:" + "\n"+ line);}//匹配到了, 开始复制if (matchStart) {//写入bw.write(line);bw.newLine();//加入换行, 不加就都在一行bw.flush();//刷新缓冲//判断是否是结束字符串, 是则break;matchEnd = line.contains(splitEndString);if (matchEnd) {System.out.println("End line matched:" + "\n"+ line);System.out.println("截取完成, 耗时:" + ((System.currentTimeMillis() - startTime)*1.0f/1000) + "秒");break;}}}} catch (Exception e) {e.printStackTrace();} finally {try {bw.close();br.close();fileInputStream.close();} catch (IOException e) {e.printStackTrace();}}}
}

日志过大NotePad++无法打开相关推荐

  1. 文件太大notepad 打不开怎么办

    文件太大notepad 打不开怎么办 notepad++软件打开日志,文件一大就打不开,记事本倒是可以打开,但是很多日志分析不了,比如某个语句出现次数,查找替换等等.目前我找到了一个替换的办法就是用S ...

  2. SQL SERVER 2008的错误日志太大

    早上客户说,网站为毛出问题了? 出问题.问题永远出现在早上刚上班,电脑刚打开的时刻,永远在最忙碌或者刚喘口气,准备实现一个宏伟功能的时候蹦出来,让你猝不及防.工作,仿佛就是在救火.今天救一个,明天救一 ...

  3. Sqlserver 错误日志太大导致硬盘空间不足

    Sqlserver 数据库因长时间使用,错误日志过大导致硬盘空间不足. 解决办法:清除Sqlserver错误日志 1.新建查询 2.选择master 3.执行 sp_cycle_errorlog 六次 ...

  4. notepad++ linux 打开二进制文件

    notepad++打开二进制文件 插件-->插件管理.在可用选择HEX-Editor,安装更新后重启notepad++就可以打开二进制文件 linux打开二进制文件 通过hexdump命令 来查 ...

  5. XenDesktop 5 SQL Server Mirror事务日志比较大的原因分析

    在实施XenDesktop5项目过程中,发现XenDesktop5版本的数据库镜像事务日志很大,在XenDesktop4和XenApp版本中不存在该问题:于是我根据该现象探究XenDesktop5及以 ...

  6. sql脚本过大,无法打开的解决方法

    sql脚本过大,无法打开的解决方法 参考文章: (1)sql脚本过大,无法打开的解决方法 (2)https://www.cnblogs.com/stevenjson/p/3705588.html (3 ...

  7. [zabbix]解决binlog日志过大/web界面中文乱码问题

    转载来源: [zabbix]解决binlog日志过大/web界面中文乱码问题 : https://www.jianshu.com/p/44cace796206 记录之前在跑项目过程中遇到的一次binl ...

  8. sqlserver 事务日志过大 收缩方法解决方案

    sqlserver 事务日志过大 收缩方法解决方案 参考文章: (1)sqlserver 事务日志过大 收缩方法解决方案 (2)https://www.cnblogs.com/QingKing/p/4 ...

  9. oracle导入命令,记录一下 数据库日志太大,清理日志文件

    oracle导入命令,记录一下 工作中用到了,这个命令,记录一下,前提要安装imp.exe imp PECARD_HN/PECARD_HN@127.0.0.1:1521/orcl file=E:\wo ...

最新文章

  1. 在DataTable中创建计算列
  2. java虚拟机xadd指令学习
  3. spring中使用scala的maven打包配置
  4. 分布式锁 分布式系统
  5. Python中星号、下画线、斜线含义汇总
  6. python numpy 技巧
  7. 基于机器视觉的曼秀雷敦洗发水瓶印刷缺陷检测
  8. 8.29 脏检查笔记
  9. 大家一起来谈论C#的前途
  10. 【数字图像处理系列五】图像滤波之空间滤波:图像平滑降噪和图像锐化
  11. 伪静态URL、静态URL和动态URL的区别
  12. 中国大陆身份证正则表达式(严格验证省份和日期)
  13. POI操作WORD表格系列--复制表格,填充数据
  14. 人间繁华江上明月,乃浮生一梦,惟真情长在——读沈君山《浮生再记》(并转书评)...
  15. haproxy编译安装以及配置文档介绍
  16. 中英文字数统计以及信息熵的计算
  17. HaiBox-E边缘计算盒子怎么样,关于HaiBox-E边缘计算盒子的评析
  18. 【数据集显示标注】VOC文件结构+数据集标注可视化+代码实现
  19. 《Data-Driven Enhancement of Blurry Retinal Images via GANs》--阅读笔记-MICCAI2019
  20. 视频监控系统 摄像头与网络存储服务器兼容,网络视频监控系统技术要点

热门文章

  1. matlab转换为部分分式,用MATLAB的residuez函数,求出下列各式的部分分式展开式和反变换f[n]。 说明:residuez函数...
  2. android10 systemui隐藏电池图标显示
  3. win11右键菜单选项设置恢复,右键菜单变成win10样式
  4. python中continue语句的作用_Pythoncontinue语句有什么作用?详解Pythoncontinue语句的用法...
  5. 如何在 Cell 组件/插件中添加下拉树形控件
  6. 用心整理值得收藏的30道Python练手题(附详细答案)
  7. 创意被盗用,这3个加水印方法,让照片刻上我们专属印记
  8. 【计算机网络】计算机网络的分类
  9. 网页计数器JavaBean
  10. 卡尔曼滤波 - Kalman filtering