【问题标题】:How to read word by word from file?如何从文件中逐字读取?
【发布时间】:2012-01-11 19:20:41
【问题描述】:

任何人都可以在这里发布一些代码,我如何从文件中逐字读取?我只知道如何使用 BufferedReader 从文件中逐行读取。如果有人用 BufferedReader 发布它,我想知道。

我用这段代码解决了这个问题:

    StringBuilder word = new StringBuilder();
                int i=0;
                Scanner input = new Scanner(new InputStreamReader(a.getInputStream()));
                while(input.hasNext()) {
                    i++;
                    if(i==prefNamePosition){
                        word.append(prefName);
                        word.append(" ");
                        input.next();
                    }
                    else{
                        word.append(input.hasNext());
                        word.append(" ");
                    }
                }

【问题讨论】:

  • 是的,我当然忘记了。我可以使用它。但是有一个问题。我编辑了Q,看看那里。

标签: android file word bufferedreader


【解决方案1】:

除了 read() 并一次获取一个字符,直到你得到一个空格或任何你想要确定“单词”是什么的标准,没有其他好方法。

【讨论】:

    【解决方案2】:

    如果您尝试用特殊值替换第 n 个标记,请尝试以下操作:

    while (input.hasNext()) {
        String currentWord = input.next();
        if(++i == prefNamePosition) {
            currentWord = prefName;
        }
        word.append(currentWord);
        word.append(" ");
    }
    

    【讨论】:

    • 我昨天用一个小改动解决了这个问题,你可以看到它。但感谢您对使用 Scanner 的建议。顺便提一句。它也适用于您的代码。
    【解决方案3】:

    另一种方法是使用标记器(例如在 Java 中)并使用分隔符空格字符(即 ' ')。然后只需遍历标记以读取文件中的每个单词。

    【讨论】:

      【解决方案4】:

      您可以读取行,然后使用拆分。单词没有明确的定义,但如果你想要用空格分隔的单词,你可以这样做。

      您也可以使用正则表达式来执行此操作。

      【讨论】:

      • 不,这不是我需要的。我需要通过while循环读取单词,因为当循环重复例如第四个时,我需要替换第四个单词。
      • 您可以将该行存储在一个变量中,然后通过“word”逐个“word”迭代该行。并做你想做的过程。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      • 2012-03-10
      相关资源
      最近更新 更多