0

傢伙,我需要了解的東西數組: 成\ n是在一個新行當期的的開頭? 如果是這樣,我試圖解析了RTL字符中有一個文件,他們是在一行的開頭,所以:解析文本文件行使用的BufferedInputStream在Java RTL字符

  1. XXX XXXX,ABC DEFG,1,11,111,786
  2. XXX XXXX,ABC DEFG,1,11,111,786
  3. 等...

解析TXT文件(從資產機器人)我不斷收到從串聯到下一行的第一個字時整數從前一行。 我已經嘗試了一切,但沒有運氣。

下面的代碼片段:

  InputStream is; 
      try { 
       is = new BufferedInputStream(getAssets().open(fileName)); 
      } catch (IOException e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 

      try { 
       InputStream is = new BufferedInputStream(getAssets().open(fileName)); 
       byte[] c = new byte[128]; 
       byte[] d = null; 
       int readChars = 0; 
       int lineNumber = 0; 
      String line; 
       String[] paramLineArray = null; 
       int k; 
       while ((readChars = is.read(c)) != -1) { 
        for (int i = 0; i < readChars; i++) { 
         if (c[i] == '\n') { 
          lineNumber++; 
          line = new String(c); 
          k = 0; 
          StringTokenizer st = new StringTokenizer(line,","); 
          paramLineArray = new String[st.countTokens()]; 
          while (st.hasMoreTokens()) { 
           // get next token and store it in the Line 
           paramLineArray[k] = st.nextToken(); 
           k++; 
          } 
         }      
        } 
        publishProgress(((int) (1/(float) lineNumber) * 100)); 
        populateTables(paramLineArray, tblName, tblElements); 
       } 

我想實現的是:

解析文本文件的真快一行 線成被插入到數據庫中的數組...

任何想法?

幫助是非常讚賞,因爲我已經在它現在天(失去我的頭髮: - ()...

目前我有代碼InputStreamReader的工作,但它是非常緩慢!!!!!

謝謝

JadeYe

+0

'\ N'是在最後Ø線路。 – 2012-02-02 23:27:13

回答

0

用途:。

BufferedReader in = new BufferedReader(
     new InputStreamReader(getAssets().open(fileName), "UTF-8")); 
try { 
    for (;;) { 
     String line = in.readLine(); 
     if (line == null) 
      break; 
     ... 
    } 
} finally { 
    in.close(); 
} 
+0

喬普謝謝你的回答。我剛剛檢查過你的解決方案,但它們都是同時生成的:對於1500條記錄2.22分鐘(在Nexus S ICS 4.0.3上進行檢查)。 凡作爲的BufferedInputStream是要快得多...任何建議??? – Jadeye 2012-02-03 00:36:57

+0

所以使用字符比字節慢。但是有一次你最好用RTF的UTF-8。你可以在BufferedInputStream上打開InputStreamReader,但是我懷疑它。這可能是StringTokenizer也是一個放緩的因素。 – 2012-02-03 01:39:23

+0

很抱歉,但沒有去... InputStreamReader中並不需要的BufferedInputStream ...只有一個可以是輸入(據我所知) – Jadeye 2012-02-03 09:30:39