java8中的流切割

时间:2018-05-21 19:52:16

标签: java java-8 java-stream

切割流的好方法是什么? 我刚开始使用java 8而且我遇到了这个问题。 我正在从文件中读取几个输入日期然后打印它们。我的问题是如何在日期和字符串之间精确切割? 可以使用“标签”吗? 到目前为止我所拥有的:

public static void main( String[] args ) throws IOException
    {

            Supplier<Stream<String>> fisier=()->{
                    try {
                        return Files.lines(Paths.get("Activities.txt"));
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    return null;
                };
                fisier.get().forEach(System.out::println);
                //fisier.get().filter(predicate)
                //List<String>out=getFilterOutput(fisier.get(),"    ");
    }

我考虑过滤信息,但我怎么知道看什么&gt;? 该文件中的一行如下所示:

  

2011-12-11 15:43:51 2011-12-11 21:41:48 Spare_Time / TV

1 个答案:

答案 0 :(得分:1)

你可以这样做:

    List <String> firstDate = new ArrayList<>();
    List <String> secondDate = new ArrayList<>();
    List <String> showName = new ArrayList<>();

    try (Stream<String> stream = Files.lines(Paths.get(fileName))) {

        stream.forEach(line -> {
            String[] parts = line.split("\\s+");
            firstDate.add(parts[0] + parts[1]);
            secondDate.add(parts[2] + parts[3]);
            showName.add(parts[4]);
        });
    } catch (IOException e) {
        e.printStackTrace();
    }