当前位置:首页 > 引流 > 正文内容

inputstream和outputstream的区别 struts2和springmvc的区别面试

admin3年前 (2022-10-21)引流611

IO 流与其他外部设备进行数据交互,比如将数据从内存中保存到磁盘文件中或者从网络上下载数据并加载到内存中,这个过程都是一种单向且有顺序的数据传输,被称之为流。

IO 就是 Input 输入和 Output 输出。输入输出以内存为中心的流向划分的。传输数据到内存就是输入流,从内存中输出数据就是输出流。

InputStreamInputStream 是所有输入流的父类,是一个抽象类,读取的数据单位是字节(byte)。

主要的抽象方法是 read(),这个方法就是读取数据内容并返回 -1~255 的 int 值。read() 方法是一个阻塞的方法,只有将内容全部读取完成之后才能运行下一行代码。

public abstract int read() throws IOException;以 FileInputStream 实现类作为示例:

public static void main(String[] args) throws Exception {    // input.txt 内容为 hello, inputStream    InputStream input = new FileInputStream("input.txt");    int n = 0;    while((n = input.read()) != -1){        System.out.print((char) n);    }    input.close();}示例中的 read() 方法只能一个字节的一个字节读取数据,效率不高,当文件中存在多个字节为一个汉字的中文时,上面的示例将打印出乱码。

InputStream 支持将一次性读取多个字节到缓冲区,利用缓冲区提升效率。返回值的数据不再是读取的数据字节,而是读取的字节数。并且可以正常的打印出中文字符。

// 将读取的内容填充到 byte 数组public int read(byte b[]) throws IOException// 将读取的内容填充 byte 数组中 off 开始,len 长度的位置public int read(byte b[], int off, int len)  throws IOException将缓冲区大小设置为 1024 个字节示例:

public static void main(String[] args) throws Exception {    //input.txt 文件内容为 你好, inputStream    InputStream input = new FileInputStream("input.txt");    byte[] result = new byte[1024];    while(input.read(result) != -1){        System.out.print(new String(result, "utf-8"));    }    input.close();}OutputStreamOutputStream 是所有输出流的父类。和 InputStream 一样是一个抽象类。

主要的抽象方法是 write(),也是一个阻塞的方法,只有将内容全部写完成之后才能运行下一行代码。

write() 方法和 read() 方法一样都是一个字节一个字节的操作的。

public abstract void write(int b) throws IOException;以 FileInputStream 实现类作为示例:

public static void main(String[] args) throws Exception {    OutputStream out = new FileOutputStream("out.txt");    try {        out.write("h".getBytes());        out.write("e".getBytes());        out.write("l".getBytes());        out.write("l".getBytes());        out.write("0".getBytes());    } finally {        if(out != null) {            out.close();        }    }}write() 按单个字节写入磁盘的效率比较低下,OutputStream 提供了 write(byte[]) 一次性大批量的将字节输出到磁盘。对于 IO 设备来探讨,一次性写入 1 个字节和写入 1000 个字节的期间都是差一点的。

public static void main(String[] args) throws Exception {    OutputStream out = new FileOutputStream("out.txt");    try {        out.write("哈喽,outputStream".getBytes());    } finally {        if(out != null) {            out.close();        }    }}关闭资源不管是 InputStream 还是 OutputStream 在使用资源之后都需要调用 close()方法。在示例中如果在 close() 方法调用之前抛出异常则不会自动关闭资源。以下两种方式都可以关闭资源:

try..finally 方式public static void main(String[] args) throws Exception {    InputStream input = new FileInputStream("input.txt");    try {        byte[] result = new byte[1024];        while(input.read(result) != -1){            System.out.print(new String(result, "utf-8"));        }    } finally {        if(input != null) {            input.close();        }    }}try(resource)实现了 Closeable 接口的 InputStream 和 OutputStream 使用 try(resource) 时,编译器会自动增加 finally。

public static void main(String[] args) throws Exception {    try (OutputStream out = new FileOutputStream("out.txt")){        out.write("编译器会添加 finally".getBytes());    }}总结今天就是简单地给各位介绍 java 的 IO 流,为下一步学其他 IO 类打个基本。

扫描二维码推送至手机访问。

版权声明:本文中部分文字、图片、音频、视频来源于互联网及公开渠道,仅供学习参考,版权归原创者所有! 如侵犯到您的权益,请及时通知我们!我们将在第一时间内删除。

本文链接:http://www.73ya.com/yinliu/6020.html

分享给朋友:

“inputstream和outputstream的区别 struts2和springmvc的区别面试” 的相关文章

抖音短视频引流推广的步骤 抖音短视频的推广方法

抖音现在可谓是直播带货的优质平台,那么我们怎么利用抖音短视频引流推广呢?今天我们就一起来看看关于抖音短视频引流推广的步骤,抖音短视频的推广方法的相关内容。 抖音短视频引流推广的步骤  一,视频引流 咱们先...

抖音短视频素材库哪里找,各种类型通通都有

大家都知道抖音上传的火热视频有很多,不管是什么领域的人都能有大神,但是他们要创作必须要经历一个找素材的过程。就算是经验非常丰富的老手也需要找素材,这足以说明素材的重要性了,那么接下来小编就给大家介绍抖音短视频素材库的网站,上干货了。 抖音短视频素材库哪里找 一、影视动漫游戏素材 1、预...

2022年快手表现怎么样,靠什么吸引商家品牌代言

2月20日,持续近一个月的北京冬奥会落下帷幕。这是国民热情最高涨的一届冬奥会,从开幕到闭幕,几乎全民都在追冬奥、看赛事。互联网大厂也没有错过这场流量盛宴,大力出手争抢用户和广告商。快手作为唯一一家获得赛事点播和短视频版权的短视频平台.得到越来越多人的喜欢,于此同时,很多人都在说,快手不能...

抖音测试短剧付费开启,看抖音竟然需要钱

最近,抖音和快手都在加码建设短剧生态,通过付费模式来解锁自己想要观看的视频,此消息一出来不禁让网友们直呼接受不来。不过也有人支持这付费模式,说也是对短视频创作者的激励,万万没想到抖音短视频竟然要钱了,接下来就跟小编一起来看看吧。 抖音、快手的一集1-5分钟的短剧,你追过吗?截至发稿,#...

金牛座和什么星座最配做夫妻(金牛座最佳性伴侣是什么星座)

相信很多人都喜欢看星座配对,想要寻找与自己最匹配的星座,不过我们看星座配对,也仅仅是一个参考而已,它不是绝对的,虽然不是绝对,但是还是有一定参考价值。今天在这里,我们要讨论的是,为什么说,金牛座与这两个星座相配,是天生的一对,他们分别是处女座、摩羯座,喜欢这文章的建议收藏。 土象星...

杭州几个区面积的排行 浙江最大的区排行榜介绍

杭州哪个区最大,哪个区最小?杭州,简称“杭”,古称临安、钱塘,是浙江省省会、副省级市、杭州都市圈核心城市,国务院批复确定的浙江省省会和全省经济、文化、科教中心、长江三角洲中心城市之一 。杭州最大的区是淳安县为4427平方千米! 淳安县(4427km²) 淳安县,隶属于浙江省杭州市,是著...