我有一个文本文件,如图片中的文本文件,它代表一个日志文件。我必须提取出现文本CANFD 1 Rx 101
的行和字节,如下图所示:
由此,我只需要选择一些消息(例如,消息x仅由位7、8、9、10 ...,20表示,然后将值分配给变量(x)。我不知道如何提取这些特定位,我想我应该使用掩码并以某种方式移动它们,但是我不知道如何。
到目前为止,我设法将这个确切的信息放入另一个.txt文件中,并且对于找到的其他行(再次发送该消息时),我添加了一个美元符号($)来对其进行定界:>
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String pathToFile = "C:\\Users\\Razvan\\eclipse-workspace\\FileParser\\FileParser\\src\\file.txt";
Scanner reader = new Scanner(new File(pathToFile));
BufferedWriter writer = new BufferedWriter(new FileWriter(new File("output19.txt")));
while (reader.hasNextLine())
{
String line = reader.nextLine();
if (line.contains("CANFD 1 Rx 101"))
{
writer.write(line.substring(80, line.length()- 19)+ "$" + "\n");
}
}
reader.close();
writer.close();
}
}