java的stream让我灵光一现

虚幻大学 xuhss 255℃ 0评论

? 优质资源分享 ?

学习路线指引(点击解锁) 知识定位 人群定位
? Python实战微信订餐小程序 ? 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
?Python量化交易实战? 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

说实话,我是一个到了退役也没有搞明白C++istreamostream的。

刚开始的时候我把直接拆解成iostream

d13fef88229300ab104ca12899d8322c - java的stream让我灵光一现

真,果粉暴露

退役之后划水,倒是从java当中发现了Stream的奥秘。

说点题外话,很多人喜欢评价一个语言难不难。

其实这种说法本身就非常的外行。

语言似乎没有什么难不难之分,一个平常的io或者是其他的基本运算真的也就算是学会这个语言了。

但是真正考验人的是那些库的使用,或者在python里面叫做模块,java当中的api

但是又话说回来,如果真的要说一下哪个语言很难的话,我认为这个位置应该让给java

196235f2744179eb3f4efa5d69beda53 - java的stream让我灵光一现

作为一位鲁莽的C++人,开始撸Java的代码的时候上来就是

public class xin

然后文件名是个j.java,当场暴毙。

或者是终端指令上面写

java Main.class

JVM:你礼貌吗?

但是一个令oi人发指的一个问题出现了。

这玩意TM怎么输入???这玩意TM怎么输入???\huge{\text{这玩意TM怎么输入???}}

这时候,一个很迷很迷的操作就出现了

Scanner scan = new Scanner(System.in)

一个标准输入的Scanner就写好了。。。

为啥要这样,我也不知道

当我开始沾沾自喜的时候,java又给我当头一棒

这玩意文件TM怎么输入???这玩意文件TM怎么输入???\huge{\text{这玩意文件TM怎么输入???}}

我靠,怎么办。

此时,我有一个大胆的想法。

ff7db7951623dcc9bef3663cc18ee51d - java的stream让我灵光一现

System.in改成File.in

APJfengc:你礼貌吗???

然后就发现了今天要说的正题。

FileInputStream

这个东西是由InputStream这个类继承(就忽略Object类了)过来的,改写了read()

这时候我就整个懵逼了,InputStream到底是个什么玩意。

这让我想到了我之前写快读模板的时候的xin_stream,这显然是个盗版玩意儿。。。

又让我想到了某个人的书上的高精度模板。

里面的一句话

istream operator

oh,豁然开朗。

然而怎么用,在我家的32bit远古电脑的加持下,intellij根本下载不了,所以piao了个gitpod先用着。

自动补全~~~

在我的理解里面,InputStream实际上就是JVM和文件或者标准输入建立了一个桥梁,之后我们再去想要输入的的话就直接请求Stream

所以原来这个就是流流\huge{\text{流}}

所以延伸一下,FileOutputStream就是输出流了呗。

好了,你学会了1+1=2了,我们来实战一下。

所以我们写个爬虫

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.*;
public class xin 
{
    public static void main(String[] args) throws IOException,Exception
    {
        URL url = new URL("");

        HttpURLConnection con = (HttpURLConnection)url.openConnection();

        final int sec = 1000;
        con.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36");
        con.setReadTimeout(sec * 10);
        con.connect();

        InputStream is = con.getInputStream();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();

        int maxn = 1024 * 10,len = 0;
        byte[] buf = new byte[maxn];

        while((len = is.read(buf)) != -1)
        {
            System.out.print(String.format("Get the mem of [ %3d MB ] [ %5d KB ]\n",len / 1024,len));
            baos.write(buf, 0, len);
        }

        File filename = new File("pic.jpg");

        FileOutputStream os = new FileOutputStream(filename);
        os.write(baos.toByteArray());

        os.close();
    }
}

后来渐渐明白了之后,我发现,java的库也就是api是真的丰富。

加起来比小日子总人数还多。

里面还有很多很多开发者的api

如果想要使用再学习个maven就行了。

所以你秃顶了没?

转载请注明:xuhss » java的stream让我灵光一现

喜欢 (0)

您必须 登录 才能发表评论!