如何从文本文件Java中读取单个单词(或行)?

Ash*_*pta 5 java io text inputstream text-files

就像标题所说,我试图编写一个程序,可以从文本文件中读取单个单词并将它们存储到String变量中.我知道如何使用FileReaderFileInputStream阅读单个,char但我正在尝试这不会工作.一旦我输入单词,我试图将这些与我的程序中的其他String变量进行比较,使用.equals,这样最好是我可以导入为Strings.我也可以将文本文件中的整行输入为String,在这种情况下,我只在文件的每一行放一个单词.如何从文本文件中输入单词并将其存储到String变量中?

编辑:好的,那种重复的帮助.它可能适合我,但我的问题有点不同的原因是因为副本只告诉如何读取单行.我试图阅读该行中的单个单词.所以基本上拆分线String.

Mis*_*sha 11

这些都是非常复杂的答案.我相信它们都很有用.但我更喜欢优雅简单 Scanner:

public static void main(String[] args) throws Exception{
    Scanner sc = new Scanner(new File("fileName.txt"));
    while(sc.hasNext()){
        String s = sc.next();
        //.....
    }
}
Run Code Online (Sandbox Code Playgroud)


spo*_*ork 9

要从文本文件中读取行,您可以使用它(使用try-with-resources):

String line;

try (
    InputStream fis = new FileInputStream("the_file_name");
    InputStreamReader isr = new InputStreamReader(fis, Charset.forName("UTF-8"));
    BufferedReader br = new BufferedReader(isr);
) {
    while ((line = br.readLine()) != null) {
        // Do your thing with line
    }
}
Run Code Online (Sandbox Code Playgroud)

相同的东西更紧凑,更不易阅读的版本:

String line;

try (BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("the_file_name"), Charset.forName("UTF-8")))) {
    while ((line = br.readLine()) != null) {
        // Do your thing with line
    }
}
Run Code Online (Sandbox Code Playgroud)

要将一行分成单个单词,可以使用String.split:

while ((line = br.readLine()) != null) {
    String[] words = line.split(" ");
    // Now you have a String array containing each word in the current line
}
Run Code Online (Sandbox Code Playgroud)