0

Guys私は何かを理解する必要があります: \ nは改行の先頭に来ますか?そう、 もしそうなら、私はそれにRTLの文字が含まれているファイルを解析しようとしていると、彼らはラインの初めである:JavaでRTL文字を使用してBufferedInputStreamを使用して、行ごとにテキストファイルを解析する

  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); 
       } 

はこれです:

は、DBに挿入された配列へのラインで、テキストファイル本当に速い 行を解析します...

私は今の日(私の髪を失うためにそれをしてきたよう

ヘルプははるかに高く評価されています - ()...

は現在、私はInputStreamReaderのでの作業のコードを持っていますが、それは非常に遅いです!!!!!

はありがとう

JadeYe

+0

'\ N 'は、エンドOでありますf行。 –

答えて

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

Joopはあなたに答えてくれてありがとう。私はちょうどあなたの解決策をチェックしましたが、両方とも同じ時間になります:1500レコードの2.22分(Nexus S ICS 4.0.3でチェック)。 どこでBufferedInputStreamの方がはるかに高速です...任意の提案??? – Jadeye

+0

文字を使用するのがバイトよりも遅いです。しかし、一度はRTL用にUTF-8を使用するのが最良です。 BufferedInputStreamのInputStreamReaderを開いてみるといいかもしれませんが、私はそれを疑っています。 StringTokenizerも遅くなる要因かもしれません。 –

+0

申し訳ありませんが、行くつもりはありません... InputStreamReaderはBufferedInputStreamを受け取りません... Input(私が知る限り) – Jadeye

関連する問題