如何从文件中逐字读取?

Posted

技术标签:

【中文标题】如何从文件中逐字读取?【英文标题】: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,看看那里。 【参考方案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”迭代该行。并做你想做的过程。

以上是关于如何从文件中逐字读取?的主要内容,如果未能解决你的问题,请参考以下文章

如何逐字处理从 SQL 读取的字符串?

C++ 从文本文件中逐字读取单词或逐字符读取单词

逐字符而不是逐字读取文本文件?

如何逐字读取文件并将这些单词分配给结构? [复制]

逐字读取文件,扫描仪

从文件中读取而不跳过空格