Разбор текстового файла строка за строкой с использованием BufferedInputStream с символами RTL в Java - PullRequest
0 голосов
/ 03 февраля 2012

Ребята, мне нужно кое-что понять: \ n приходит в начале новой строки: Правильно?Если это так, я пытаюсь проанализировать файл, в котором есть символы RTL, и они находятся в начале строки, поэтому:

  1. xxx xxxx, ABC DEFG, 1, 11, 111, 786
  2. xxx xxxx, ABC DEFG, 1, 11, 111, 786
  3. и т. Д.получение первого слова из следующей строки, сцепленной с целым числом из предыдущей строки.Я попробовал все, но безуспешно.

    Вот фрагмент кода:

                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.

1 Ответ

0 голосов
/ 03 февраля 2012

Использование:

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