Как выбрать определенные биты из текстового файла? - PullRequest
0 голосов
/ 16 марта 2019

У меня есть текстовый файл, подобный изображенному на картинке, который представляет файл журнала.Я должен извлечь строки, где встречается текст CANFD 1 Rx 101, и байты, как на следующем рисунке:

initialFile

Из этого я должен выбратьтолько несколько сообщений (например, сообщение x представлено только битами 7,8,9,10 ..., 20 и присваивает значение переменной (x). Я не знаю, как извлечь эти определенныебиты, я думаю, что я должен использовать маску и как-то сдвинуть их, но я не знаю, как.

Пока мне удалось поместить эту точную информацию в другой файл .txt и для каждой другой строки, как найдено(когда сообщение отправляется снова), я добавил знак доллара ($) для его разграничения:

FileThatIhaveAchieved

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();
    }

}
...