如何从文本文件中选择某些位?

时间:2019-03-16 16:30:40

标签: java file parsing text hex

我有一个文本文件,如图片中的文本文件,它代表一个日志文件。我必须提取出现文本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();
    }

}

0 个答案:

没有答案