У меня есть текстовый файл, подобный изображенному на картинке, который представляет файл журнала.Я должен извлечь строки, где встречается текст 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();
}
}