2014-03-12 64 views
0

我想在同一時間加載兩個文件,但也要訪問第一個gps1文件。我想逐行訪問gps1文件,根據我將在稍後解釋的句子類型,我想對該行執行不同的操作,然後移動到下一行。如何在Java中讀取文本文件時訪問某行的值

基本上gps1例如有多行,但每行都屬於幾個類別,都以$ GPS(其他字符)開頭。其中一些類型有我需要收集的時間戳,有些類型沒有時間戳。

    File gps1File = new File(gpsFile1); 
     File gps2File = new File(gpsFile2); 

     FileReader filegps1 = new FileReader(gpsFile1); 
     FileReader filegps2 = new FileReader(gpsFile2); 

     BufferedReader buffer1 = new BufferedReader(filegps1); 
     BufferedReader buffer2 = new BufferedReader(filegps2); 


     String gps1; 
     String gps2; 

     while ((gps1 = buffer1.readLine()) != null) { 

的GPS1數據文件如下

$GPGSA,A,3,28,09,26,15,08,05,21,24,07,,,,1.6,1.0,1.3*3A 
$GPRMC,151018.000,A,5225.9627,N,00401.1624,W,0.11,104.71,210214,,*14 
$GPGGA,151019.000,5225.9627,N,00401.1624,W,1,09,1.0,38.9,M,51.1,M,,0000*72 
$GPGSA,A,3,28,09,26,15,08,05,21,24,07,,,,1.6,1.0,1.3*3A 

感謝

+0

你沒有任何mentionned你的第二個文件,它是如何鏈接到你的第一個文件。在您的第一個文件中,只需逐行讀取它,然後使用正則表達式或簡單的String.split來提取它所具有的信息。 – XSen

+0

gps2與gps1相同,但它只是一個不同的GPS接收,所以數據可能會略有不同步 – NJD

回答

0

我真的不明白你所面對但無論如何這個問題,如果你想獲得你的行內容,您可以使用StringTokenizer

StringTokenizer st = new StringTokenizer(gps1,「,」);

然後由一個

而(st.hasMoreToken) 的String = st.nextToken()訪問數據的一個;

編輯: 注意:第一個令牌將是你的「$ GPXXX」屬性

+1

我有這樣的:\t StringTokenizer st = new StringTokenizer(gps1,「,」); \t \t \t \t while(st.hasMoreTokens())s = st.nextToken();它只是打印出存儲地址。我之前沒有使用過字符串分詞器,因此我不知道如何使用字符串分詞器。 – NJD

+0

nop st.nextToken()返回下一個標記,你應該打印返回的內容。作爲實例,String s = st.nextToken();的System.out.println(一個或多個); StringTokenizer只是幫助你解析幾個標記中的行。 – Kraiss

相關問題