gpt4 book ai didi

java - 如何读取客户提供的日志文件?

转载 作者:行者123 更新时间:2023-12-01 10:58:28 26 4
gpt4 key购买 nike

所以我有一个像这样的日志文件

blah blah blah blah blah blah blah 
blah blah blah blah blah blah blah
<someTag>someDetail</someTag>
blah blah blah blah blah blah blah
blah blah blah blah blah blah blah
<someTag>someDetail</someTag>
blah blah blah blah blah blah blah
blah blah blah blah blah blah blah

这是我读取文件的代码

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class DummyReadFile {

public static void main(String[] args) {

BufferedReader br = null;

try {

String sCurrentLine;
br = new BufferedReader(new FileReader("C:/Hussi/logFile.log"));

while ((sCurrentLine = br.readLine()) != null) {
//System.out.println(sCurrentLine);
if(sCurrentLine.contains("<"))
{
System.out.println("==>>>"+sCurrentLine);
}
}

} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}

}

但在我的输出中我得到了

b l a h b l a h b l a h 
< s o m e T a g >s o m e D e t a i l < / s o m e T a g >
b l a h b l a h b l a h
< s o m e T a g >s o m e D e t a i l < / s o m e T a g >
b l a h b l a h b l a h
< s o m e T a g >s o m e D e t a i l < / s o m e T a g >

字符之间的空间实际上是一些正方形

如何才能正确读取文件

我必须提及文件格式之类的东西吗??

this is the console

最佳答案

您的文件似乎采用 UTF-16 文本编码格式

我更改了两行,现在程序可以正常工作了。

FileInputStream fin = new FileInputStream("C:/temp/test3.txt");
br = new BufferedReader(new InputStreamReader(fin, "UTF-16LE"));

修改工作计划

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class DummyReadFile {

public static void main(String[] args) {

BufferedReader br = null;

try {

String sCurrentLine;
FileInputStream fin = new FileInputStream("C:/temp/test3.txt");
br = new BufferedReader(new InputStreamReader(fin, "UTF-16LE"));
//br = new BufferedReader(new FileReader("C:/temp/test3.txt"));

while ((sCurrentLine = br.readLine()) != null) {
System.out.println(sCurrentLine);
/*if(sCurrentLine.contains("<"))
{
System.out.println("==>>>"+sCurrentLine);
}*/
}

} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)br.close();
} catch (IOException ex) {
ex.printStackTrace();
}
}
}

}

关于java - 如何读取客户提供的日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33470916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com