2010-06-24 38 views
0

我是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處的新行數據。我不確定如何去做。

+0

爲了清楚起見^ M代表回車字符'\ r' – krock 2010-06-24 00:52:16

回答

1

readLine()是一個相當特別的關於什麼構成行尾。改爲使用read()

1

您可以用一行讀取整個文件,然後使用String.split(「^ M」)分割它以創建一個字符串數組,每個字符串表示一個「行」,然後分別處理數組中的每個元素。

0
line.replace("\r", "\n") 
相關問題