用java实现cat命令_024:用Java实现shell命令cat 1.log | grep a | sort | uniq -c | sort -rn的功能...

本文通过Java代码实现Linux的cat、grep、sort、uniq -c和sort -rn命令的功能,展示了如何用Java 8的流处理集合。文中包括参考答案、知识点梳理、常用API、使用案例和练习,帮助读者理解如何用Java模拟Linux命令操作。
摘要由CSDN通过智能技术生成

988f6411240e?utm_source=oschina-app

artificial-intelligence-codes-coding-247791.jpg

参考答案

这个问题考察的是对Linux命令的熟悉程度,以及对Java中集合操作的综合运用,自从转到Java 8以后,我就一直使用流来处理集合了,下面的代码就是我用流来实现的参考答案

package org.java.learn.java8.stream;

import java.io.*;

import java.util.*;

import java.util.function.Function;

import java.util.stream.Collectors;

public class ShellExample {

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

//cat命令,相当于是读取文件中的所有行,并输出

File file = new File("/Users/duqi/IdeaProjects/LearnJava/src/main/java/org/java/learn/java8/stream/t1.txt");

BufferedReader bufferedReader = new BufferedReader(new FileReader(file));

List lines = new ArrayList<>();

String str = null;

while ((str = bufferedReader.readLine()) != null) {

lines.add(str);

}

//grep a,相当于filter

lines = lines.stream().filter(s -> s.contains("a")).collect(Collectors.toList());

//sort 按照字典序从小到大排序

lines = lines.stream().sorted().collect(Collectors.toList());

//uniq -c,统计相同的元素的个数

Map integerMap =

lines.stream().sorted().collect(Collectors.groupingBy(Function.identity(), Collectors.counting()));

//sort -rn,排序后逆序输出

List res =

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值