[精]Java I/O流的递进式学习

本文介绍了Java IO流,包括其定义和使用原因,字节流可处理一切文件,字符流只能处理纯文本。还推荐了学习博客,展示了读取大文本txt的程序,最后探讨了Java对象和流的序列化与反序列化,推荐用fastjson处理对象序列化,流序列化暂无合适轮子需自制。

说明

借用这篇文章,帮助自己复习IO流的知识,巩固基础,并一窥各大牛的技术成果;最终的目的是聊熟于胸,然后快速应用.

什么是IO流

这里借用百度百科的解释:

流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作。用来进行输入输出操作的流就称为IO流。换句话说,IO流就是以流的方式进行输入输出

为什么用IO流

我找了很多解释,但是我感觉可能我的知识水平没有达到那种水平,理解不了;我的理解呢,就是,我们知道,在前端,是不允许操作本地数据的,不然人家通过一个网页就能控制你电脑的数据了,那还搞屁;一般我们操作本地的文件,音频等都是通过后台(java,php等)来搞的,而这些文件一般都很大,那么怎么办呢,所以我们就会用到IO流来统一处理.
字节流:二进制,可以一切文件,包括纯文本,doc 音频 视频等等
字符流:文本文件,只能处理纯文本


其实在找这一块的知识时,我发现老外,一般都是从为什么开始,而我们一般都是直接开始用了,完全不明白为什么用,只知道怎么用;这就是差距啊;是社会性的.不是一两个人的问题.

递进式了解

为了循序渐进的学习,我翻看了很多博客,这里推荐一篇博客,写的很好,方便理解:
https://blog.youkuaiyun.com/sinat_33921105/article/details/81081452
这个作者很强啊,我感觉我不用写了,看他的就行了;然后我这里稍微总结下:

抽象一些小工具用用

这里要特别注意,你去调试的时候,由于程序运行特别快,你调试的时候程序可能已经运行到最后了

1 读取文本txt
 public static class tools {
        public static String read_txt(String filepath) throws IOException {
            File file = new File(filepath);
            if (!file.exists()) {
                return "文件不存在";
            } else {
                FileInputStream fileInputStream = new FileInputStream(file);
                //获取txt的长度
                int length = fileInputStream.available();
                byte[] bytes = new byte[length];
                fileInputStream.read(bytes);
                String rs = new String(bytes);
                return rs;
            }
        }
    }

这里测试了个100M的txt,就是那种电脑打开都费劲的…然而这个程序读起来还挺快,可以用一下,读txt一般没问题感觉;

实际处理问题

看了几篇博文,大体算是了解了I/O,心里想着,就没有轮子能用吗;发现好像还真没有…然后又去springboot里面找了找,哎,注解看的脑袋都是大的,下面呕心总结一番(前端的苦逼)

java对象的序列化和反序列化

用轮子就行了;;;推荐阿里巴巴的fastjson

流的序列化和反序列化

说实话,没找到什么轮子…自己造呗

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李卓书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值