我是java編程新手。我有一個程序,我寫信給我的汽車進行數據交換。我遇到了使用原始數據而不是熟數據的問題。如何將^ M分解成單獨的行?
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處的新行數據。我不確定如何去做。
爲了清楚起見^ M代表回車字符'\ r' – krock 2010-06-24 00:52:16