我正在尝试使用java:
读取以此形式编写的日志文件2 05.08.2011 13:07:54.136 .r5 objects - ODBC [128] - C:\Windows\example.r5 [30] - 0x081BF015 - TLineThread.ModuleODBC the ODBC driver reports an error - parameter strSQLError contains the error information
1 09.08.2011 19:01:28.473 .r5 objects - ODBC [27] - C:\Windows\ExampleWithALongName.r5 [18] - 0x081BF015 - ODBC driver reports an error - parameter strSQLError contains the error information
在这样的输出中它是什么东西:
2 05.08.2011 13:07:54.136 .r5 objects - ODBC [128] - C:\Windows\example.r5 [30] - 0x081BF015 - TLineThread.ModuleODBC the ODBC driver reports an error - parameter strSQLError contains the error information
1 09.08.2011 19:01:28.473 .r5 objects - ODBC [27] - C:\Windows\ExampleWithALongName.r5 [18] - 0x081BF015 - ODBC driver reports an error - parameter strSQLError contains the error information
因此,在每一行中,分隔符“ - ”恰好位于前一行的分隔符“ - ”之下。 (如果路径的名称更长或不同,则无效)
我该怎么做?
答案 0 :(得分:1)
有6个部分,你应该找到每个部分中最长的部分。
File file = new File(inputFilePath);
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
int[] partCharCount = new int[6];
for(int c : partsCount)
c=0;
while((line=br.readLine())!=null)
{
String[] parts = line.split("\\s*-\\s*");
for(int i=0;i<parts.length; i++)
if(parts[i].length() > partCharCount[i])
partCharCount[i] = parts.length;
}
之后你应该再次阅读该文件,将每一行拆分为此代码中的部分,然后附加到每个部分空格以到达partsCount [i] +1