gpt4 book ai didi

java - 如何将 ^M 分成单独的行?

转载 作者:行者123 更新时间:2023-12-02 08:31:56 25 4
gpt4 key购买 nike

我是java编程新手。我编写了一个程序来交互汽车中的数据。我在使用原始数据而不是熟数据时遇到了问题。

    public static void readFile(String fromFile) throws IOException {
BufferedReader reader = new BufferedReader(new FileReader(fromFile));

//... Loop as long as there are input lines.
String line = null;

while ((line=reader.readLine()) != null ) {
if (line.length() >= 2) {

Status.LineToken = new StringTokenizer (line);
Status.CheckToken = Status.LineToken.nextToken();
Log.level1(line);
if ( Status.CheckToken.contains("41")) {
Mode01.modeSwitch();
} else if (Status.CheckToken.contains("42")) {
Mode02.modeSwitch();
} else if ( Status.CheckToken.contains("43")) {
Mode03.modeSwitch();
} else if (Status.CheckToken.contains("44")) {
Mode04.modeSwitch();
} else if ( Status.CheckToken.contains("45")) {
Mode05.modeSwitch();
} else if ( Status.CheckToken.contains("46")) {
//is there a mode 6?
} else if ( Status.CheckToken.contains("47")) {
//is there a mode 7?
} else if ( Status.CheckToken.contains("48")) {
// mode 8 is for control of a vehicle. Unknown params at this time.
} else if ( Status.CheckToken.contains("49")) {
Mode09.modeSwitch();
} else if (line.endsWith(">")) {
//Send data to OBD unit
} else if (Status.LineToken != null) {
//blank line catch
}
}
}
reader.close(); // Close to unlock.
newDataIsAvailable = true;
}

当我使用像这样的输入数据作为“FileReader(fromFile)”时,上面的代码效果很好:

>0100
41 00 BE 1F B8 10

>0101
41 01 00 07 65 00

但是我在转换原始代码时遇到问题:

^M^M>0100^M41 00 BE 1F B8 10 ^M^M>0101^M41 01 00 07 65 00 

所以基本上,问题是我需要在 reader.readline 上设置一个行分隔符,以在 ^M 处创建新的数据行。我不太确定该怎么做。

最佳答案

readLine()对于行结尾的构成相当特殊。请改用 read()

关于java - 如何将 ^M 分成单独的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3106512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com