Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将txt文件中的行转换为字符/字符串流_Java_File_Io_Java Stream - Fatal编程技术网

Java 如何将txt文件中的行转换为字符/字符串流

Java 如何将txt文件中的行转换为字符/字符串流,java,file,io,java-stream,Java,File,Io,Java Stream,我需要计算txt文件中的行数和单词数,到目前为止,我尝试了以下方法: File file = new File("C:\\output_form.txt"); Path path = Paths.get(file.getAbsolutePath()); long lineCount = Files.lines(path).count(); Stream<String> stream = Files.lines(path); long numberOFWords = stream

我需要计算txt文件中的行数和单词数,到目前为止,我尝试了以下方法:

File file = new File("C:\\output_form.txt");

Path path = Paths.get(file.getAbsolutePath());
long lineCount = Files.lines(path).count();

Stream<String> stream = Files.lines(path);

long numberOFWords = stream
            .map(line -> line.codePoints())
            .filter(character -> character.findAny().equals("a"))
            .count();
System.out.println("Lines: "+lineCount + "\n" +
        "Words: "+ numberOFWords);


有关于我做错了什么的提示吗?

要计算字数,你应该使用空格
flatMap
将每个单词作为
字符串
拆分成

如果您还想过滤任何特定类型的单词,可以在
flatMap
之后和
count
操作之前添加
.filter

如果打算捕获所有字符,您可以将上述解决方案扩展到
flatMap
行,以获取相应的字符流

long numberOfCharacters = Files.lines(path)
        .flatMap(line -> line.chars().mapToObj(c -> (char) c))
        .filter(c -> !c.equals(' '))
        .count();
long lineCount = Files.lines(path).count();
long numberOFWords  = Files.lines(path)
            .flatMap(line -> Arrays.stream(line.split(" "))) // this section
            .count();
long numberOfCharacters = Files.lines(path)
        .flatMap(line -> line.chars().mapToObj(c -> (char) c))
        .filter(c -> !c.equals(' '))
        .count();