2013-07-03 34 views
-5
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream, "UTF-8")); 
String line; 
while ((line = br.readLine()) != null && 'v' == line.charAt(0)) 
{ 
    // perform your task here 

    String[] separated = line.split(" "); 
    Log.d("bbb", separated[0].toString()); 
} 

07-02 23:17:42.127: E/Trace(14343): error opening trace file: No such file or directory (2) 
07-02 23:17:42.127: D/ActivityThread(14343): setTargetHeapUtilization:0.25 
07-02 23:17:42.127: D/ActivityThread(14343): setTargetHeapIdealFree:8388608 
07-02 23:17:42.127: D/ActivityThread(14343): setTargetHeapConcurrentStart:2097152 
07-02 23:17:42.167: D/aaa(14343): It worked! 
07-02 23:17:42.337: D/libEGL(14343): loaded /system/lib/egl/libEGL_adreno200.so 
07-02 23:17:42.337: D/libEGL(14343): loaded /system/lib/egl/libGLESv1_CM_adreno200.so 
07-02 23:17:42.337: D/libEGL(14343): loaded /system/lib/egl/libGLESv2_adreno200.so 
07-02 23:17:42.397: I/Adreno200-EGLSUB(14343): <ConfigWindowMatch:2087>: Format RGBA_8888. 
07-02 23:17:42.417: E/(14343): <s3dReadConfigFile:75>: Can't open file for reading 
07-02 23:17:42.417: E/(14343): <s3dReadConfigFile:75>: Can't open file for reading 
07-02 23:17:42.417: D/OpenGLRenderer(14343): Enabling debug mode 0 

增加了double,似乎是停止了流的讀取過程。如果我刪除「& &‘V’== line.charAt(0)」,它工作正常,並給出了這樣的輸出:Android double和,&&

07-02 23:17:42.127: E/Trace(14343): error opening trace file: No such file or directory (2) 
07-02 23:17:42.127: D/ActivityThread(14343): setTargetHeapUtilization:0.25 
07-02 23:17:42.127: D/ActivityThread(14343): setTargetHeapIdealFree:8388608 
07-02 23:17:42.127: D/ActivityThread(14343): setTargetHeapConcurrentStart:2097152 
07-02 23:17:42.167: D/aaa(14343): It worked! 
07-02 23:17:42.337: D/libEGL(14343): loaded /system/lib/egl/libEGL_adreno200.so 
07-02 23:17:42.337: D/libEGL(14343): loaded /system/lib/egl/libGLESv1_CM_adreno200.so 
07-02 23:17:42.337: D/libEGL(14343): loaded /system/lib/egl/libGLESv2_adreno200.so 
07-02 23:17:42.397: I/Adreno200-EGLSUB(14343): <ConfigWindowMatch:2087>: Format RGBA_8888. 
07-02 23:17:42.417: E/(14343): <s3dReadConfigFile:75>: Can't open file for reading 
07-02 23:17:42.417: E/(14343): <s3dReadConfigFile:75>: Can't open file for reading 
07-02 23:17:42.417: D/OpenGLRenderer(14343): Enabling debug mode 0 
07-02 23:20:47.264: E/Trace(14481): error opening trace file: No such file or directory (2) 
07-02 23:20:47.264: D/ActivityThread(14481): setTargetHeapUtilization:0.25 
07-02 23:20:47.264: D/ActivityThread(14481): setTargetHeapIdealFree:8388608 
07-02 23:20:47.264: D/ActivityThread(14481): setTargetHeapConcurrentStart:2097152 
07-02 23:20:47.304: D/aaa(14481): It worked! 
07-02 23:20:47.304: D/bbb(14481): # 
07-02 23:20:47.304: D/bbb(14481): # 
07-02 23:20:47.304: D/bbb(14481): # 
07-02 23:20:47.304: D/bbb(14481): # 
07-02 23:20:47.304: D/bbb(14481): # 
07-02 23:20:47.304: D/bbb(14481): v 
07-02 23:20:47.304: D/bbb(14481): v 
07-02 23:20:47.304: D/bbb(14481): v 
07-02 23:20:47.304: D/bbb(14481): v 
07-02 23:20:47.314: D/bbb(14481): v 
+0

所以,如果你不需要'&&' v'== line.charAt(0)'你爲什麼把它放在那裏? –

+0

我正在嘗試檢查僅以'v'開頭的行.... – Giuseppe

+1

考慮從您的問題中刪除不必要的輸出。只保留由有問題的代碼段產生的輸出。另外,如果您在這裏提供樣本輸入,這將有所幫助。 –

回答

4

如果你的問題是:我如何只處理開始的行v?然後改變:

while ((line = br.readLine()) != null && 'v' == line.charAt(0)) 

while ((line = br.readLine()) != null) { 
    if (line.trim().startsWith("v")) { 
     ... 
    } 
} 

代碼之前,將盡快退出循環作爲非V字顯示出來

+0

我更改了代碼,但日誌中沒有輸出任何以v開頭的行,並且存在一些錯誤。 – Giuseppe

+0

當我運行startsWith(「v」)代碼時,日誌本質上變成了我的文章中的第一個日誌條目... – Giuseppe

+1

也許在v之前有空格?檢查我更新的答案。 –