我想使用java来读取weblogic日志文件,而weblogic正在将日志写入其中(缓冲),但我只想读取内容,当我开始阅读它时.

我怎样才能做到这一点 ?

public class DemoReader implements Runnable{

public void run() {

File f = new File ("c:\\test.txt");

long length = f.length();

long readedBytes = 0;

System.out.println(length);

try {

BufferedReader fr = new BufferedReader(new FileReader(f));

String line = "";

while((line = fr.readLine()) != null && readedBytes < length){

readedBytes += line.getBytes().length;

if(readedBytes > length){

break;

}else{

System.out.println(line);

}

}

} catch (FileNotFoundException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

}

}

最佳答案

只要日志文件仅被锁定以进行写访问,您应该能够像@ karim79建议的那样将其复制.之后,副本属于您,因此您可以随心所欲地做任何事情.

下面是一些应该实现您所需要的代码 – 它只是将文件逐字节复制到System.out流:

public class Main {

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

// Identify your log file

File file = new File("path/to/your/logs/example.log");

// Work out the length at the start (before Weblogic starts writing again)

long size = file.length();

// Read in the data using a buffer

InputStream is = new FileInputStream(file);

BufferedInputStream bis = new BufferedInputStream(is);

long byteCount=0;

int result;

do {

// Read a single byte

result = bis.read();

if (result != -1)

{

// Do something with your log

System.out.write(result);

} else {

// Reached EOF

break;

}

byteCount++;

} while (byteCount

你去吧

有关日志文件的说明

如果日志文件很大(例如> 1Gb),那么您应该考虑更改日志配置以合并滚动日志文件,该日志文件会自动将日志分解为块(例如1Mb),这些块更适合在shell编辑器中查看(像vim).

相关文章

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

java读取一个应用程序_Java IO – 在写入其他应用程序时读取一个大文件相关推荐

  1. java 实现文件下载保存框_Java开发网 - 任何类型的文件下载时都会弹出文件保存框的实现(原创)...

    于 2002-12-12 11:09 :):):)任何类型的文件下载时都会弹出文件保存框的实现:(:(:( 简介: 从事WEB程序设计的朋友一定都遇到过这种情况吧,对于一些操作系统可以识别的文件类型如 ...

  2. Java使用FFmpeg(自定义cmd)系列之获取视频/音频时长(File文件方式)

    ffmpeg系列 Java使用FFmpeg(自定义cmd) Java使用FFmpeg(自定义cmd)系列之获取视频/音频时长 Java使用FFmpeg(自定义cmd)系列之官方API获取视频/音频信息 ...

  3. java 不编译咋办_java – 为什么JVM不编译整个程序,而不是逐个编译?

    他所说的是,在运行时将所有字节码编译成机器语言是不切实际的.您可以预先编译所有内容,但这并不是JIT所采用的方法. 一方面,不知道程序有多大.人们在30分钟的启动时会相当不高兴,因为它编译了可以找到的 ...

  4. java抽奖程序_java怎么做出简单的抽奖程序?实例代码展示

    自从20世纪90年代以来,java编程语言的发展如火如荼,不仅仅应用于高新产业的壮大发展,还涉及到了我们的日常生活,为我们的生活带来了更多的便利与快捷方法.今天主要为大家介绍一下,如何用java做出一 ...

  5. Java初学者作业——实现控制台的猜数字游戏。游戏运行时产生一个1~100之间的随机数字

    返回本章节 返回作业目录 需求说明: (1)实现控制台的猜数字游戏.游戏运行时产生一个1-100之间的随机数字 (2)要求用户从控制台输入数字,若输入的数字比随机数小,则输出"太小了,再大一 ...

  6. java io 读取多个对象_Java IO系列(五):读写对象ObjectOutputStream和ObjectInputStream详解...

    有必要多看几遍的 关于字符和字节,例如文本文件,XML这些都是用字符流来读取和写入.而如RAR,EXE文件,图片等非文本,则用字节流来读取和写入. 读写对象,传输对象在Java中很常使用,在javaB ...

  7. java流程图表示输入 输出_Java IO基础总结

    Java IO基础总结 Java中使用IO(输入输出)来读取和写入,根据数据走向可分为输入流和输出流,用户可以从输入流中中读取信息,但不能写它,相反,对输出流,只能往输入流写,而不能读它(输入流表示从 ...

  8. java格式错误什么意思_java.io.IOException可能的原因是什么:“文件名,目录名或卷标语法不正确”...

    我试图使用以下代码复制一个文件: File targetFile = new File(targetPath + File.separator + filename); ... targetFile. ...

  9. java点击按钮结线程_多线程的Java应用程序在调试工具Netbeans中单击“停止”按钮时输出一个奇怪的结果...

    我使用wait()和notify()机制学习了java中的多线程. 但我很好奇输出一个简单的多线程Java应用程序. 代码如下: class Q { int n; boolean valueSet = ...

最新文章

  1. 手把手教你深度学习强大算法进行序列学习(附Python代码)
  2. 谷歌浏览器mac_Mac用户浏览网页不可少的浏览器-谷歌Chrome
  3. Java黑皮书课后题第7章:**7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生。所有的储物柜在上学的第一天都是关着的。…在所有学生都经过教学楼并且改变柜子之后,哪些柜子是开着的?
  4. 关于报表中汇率转换的问题
  5. Java定义People类
  6. 完美解决IE(IE6/IE7/IE8)不兼容HTML5标签的方法
  7. 到底如何调用Async异步函数
  8. 忘记using namespace std;
  9. 【矩阵论 图论】期末考试复习思维导图
  10. Java基于springboot办公OA管理系统源码
  11. 12项目管理--项目采购管理
  12. 云服务器网站logo,云服务器 logo
  13. mysql 表分区修复,硬盘分区表损坏后的数据恢复方法
  14. apache启动失败原因
  15. P6974 [NEERC2015]Adjustment Office 题解
  16. php 检测是否是微信浏览器,PHP判断设备是否为微信浏览器或QQ浏览器
  17. 如何在虚拟一个USB设备
  18. linux下使用mail定时发送邮件-阿里企业邮箱发送
  19. Flowable入门系列文章11 - Flowable API 01
  20. linux定期清理日志脚本,一周清理一次

热门文章

  1. Jmeter(四十八)_动态线程分析HTML测试报告
  2. django 视图模式
  3. Net学习日记_ADO.Net_2_练习(treeView)
  4. Collections about Deep Learning
  5. Error:java: Compilation failed: internal java compiler error
  6. g++能过,c++过不了
  7. ZOJ 1242 Carbon Dating
  8. Hibernate缓存-使用Ehcache让实体对象集合对象缓存
  9. XAF 如何使用复合主键和复合外键
  10. JZOJ 3456. 【NOIP2013模拟联考3】恭介的法则(rule)