java怎么读取windows 事件日志 文件

Python025

java怎么读取windows 事件日志 文件,第1张

您好,很高兴为您解答。日志文件在哪个目录,用fileinputstream读文件就行了

import java.io.BufferedReader

import java.io.File

import java.io.FileInputStream

import java.io.IOException

import java.io.InputStreamReader

import java.util.ArrayList

import java.util.List

public class FileReaderTest {

static List<String>logs = new ArrayList<String>()

public static List<String>readFile(File f) throws IOException {

if (f == null || !f.exists()) {

return null

}

List<String>list = new ArrayList<String>()

String encoding = "UTF-8"

InputStreamReader read = new InputStreamReader(new FileInputStream(f),

encoding)

BufferedReader br = new BufferedReader(read)

String line = null

import java.io.BufferedReader

import java.io.File

import java.io.FileNotFoundException

import java.io.FileWriter

import java.io.IOException

import java.io.InputStreamReader

import java.io.PrintWriter

import java.io.RandomAccessFile

import java.io.ByteArrayInputStream

class Reader implements Runnable {

Reader(String filename) {

this.filename = filename

}

private String filename

private long filelength = 0

private int count=0

@Override

public void run() {

while (true) {

try {

File f = new File(filename)

long nowlength = f.length()

long readlength = nowlength - filelength

if (readlength == 0) {

Thread.sleep(1000)

continue

}

RandomAccessFile rf = new RandomAccessFile(f, "r")

// 移动文件指针到上次读的最后

rf.seek(filelength)

filelength=nowlength

byte[] b = new byte[(int) readlength]

rf.read(b, 0, b.length)

rf.close()

BufferedReader br=new BufferedReader(new InputStreamReader(new ByteArrayInputStream(b)))

String str=null

count++

System.out.println("第"+count+"次读到的内容:")

while((str=br.readLine())!=null){

System.out.println(str)

}

br.close()

} catch (FileNotFoundException e) {

e.printStackTrace()

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}

}

class Writer implements Runnable{

Writer(String filename) {

this.filename = filename

}

private String filename

private int count=0

@Override

public void run() {

while (count++<100){

try {

PrintWriter pw=new PrintWriter(new FileWriter(filename,true))

pw.append(""+count).append("\t").append(""+System.currentTimeMillis()).append("写入的内容").append("\r\n")

pw.close()

Thread.sleep(100)

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace()

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace()

}

}

}

}

public class ReadFileFromTrail {

public static void main(String[] args) {

Reader reader=new Reader("d:\\test.log")

Writer writer=new Writer("d:\\test.log")

new Thread(reader).start()

new Thread(writer).start()

}

}