字节流

字节流

根据数据的流向分为:输入流输出流

  • 输入流 :把数据从其他设备上读取到内存中的流。
  • 输出流 :把数据从内存 中写出到其他设备上的流。
    格局数据的类型分为:字节流字符流
  • 字节流 :以字节为单位,读写数据的流。
  • 字符流 :以字符为单位,读写数据的流。
输入流输出流
字节流字节输入流
InputStream
字节输出流
OutputStream
字符流字符输入流
Reader
字符输出流
Writer

1. 字节输出流OutputStream

java.io.OutputStream抽象类是表示字节输出流的所有类的超类,将指定的字节信息写出到目的地。它定义了字节输出流的基本共性功能方法。

  • public void close() :关闭此输出流并释放与此流相关联的任何系统资源。
  • public void flush() :刷新此输出流并强制任何缓冲的输出字节被写出。
  • public void write(byte[] b):将 b.length字节从指定的字节数组写入此输出流。
  • public void write(byte[] b, int off, int len) :从指定的字节数组写入 len字节,从偏移量 off开始输出到此输出流。
  • public abstract void write(int b) :将指定的字节输出流。

close方法,当完成流的操作时,必须调用此方法,释放系统资源。

1.1 FileOutputStream extends OutputStream

1.1.1 构造方法

  • public FileOutputStream(File file):创建文件输出流以写入由指定的 File对象表示的文件。
  • public FileOutputStream(String name): 创建文件输出流以指定的名称写入文件。
    当你创建一个流对象时,必须传入一个文件路径。该路径下,如果没有这个文件,会创建该文件。如果有这个文件,会清空这个文件的数据。

未开始

package com.itheima.demo01.OutputStream;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;public class Demo01OutputStream {public static void main(String[] args) throws IOException {File file = new File("a.txt");FileOutputStream fos = new FileOutputStream(file);//同FileOutputStream fos = new FileOutputStream("a.txt");fos.write(97);fos.close();}
}

运行结果
运行之后产生新文件
将“a”写入新文件

1.1.2 write

  1. write();
  2. write(byte[] b);
    未运行
package com.itheima.demo01.OutputStream;import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;public class Demo02OutputStream {public static void main(String[] args) throws IOException {FileOutputStream fos = new FileOutputStream(new File("b.txt"));byte[] bytes = "你好,世界".getBytes();fos.write(bytes);fos.close();}
}

运行结果
运行结果

  1. write(byte[] b,int off,int len);
package com.itheima.demo01.OutputStream;import java.io.FileOutputStream;
import java.io.IOException;public class Demo03OutputStream {public static void main(String[] args) throws IOException {FileOutputStream fos = new FileOutputStream("b.txt");byte[] bytes = {65, 66, 67, 68, 69};//A B C D Efos.write(bytes, 1, 2);//B Cfos.close();}
}

运行结果
运行结果

1.1.3 数据追加续写

  • public FileOutputStream(File file, boolean append): 创建文件输出流以写入由指定的 File对象表示的文件。
  • public FileOutputStream(String name, boolean append): 创建文件输出流以指定的名称写入文件。

这两个构造方法,参数中都需要传入一个boolean类型的值,true 表示追加数据,false 表示清空原有数据。
未运行

package com.itheima.demo01.OutputStream;import java.io.*;public class Demo04OutputStream {public static void main(String[] args) throws IOException {FileOutputStream fos = new FileOutputStream("c.txt", true);/*追加写10个"你好",并进行换行处理*/for (int i = 0; i < 10; i++) {fos.write("\n".getBytes());fos.write("你好".getBytes());}}
}

运行结果
运行后

2. 字节输入流InputStream

java.io.InputStream抽象类是表示字节输入流的所有类的超类,可以读取字节信息到内存中。它定义了字节输入流的基本共性功能方法。

  • public void close() :关闭此输入流并释放与此流相关联的任何系统资源。
  • public abstract int read(): 从输入流读取数据的下一个字节。
  • public int read(byte[] b): 从输入流中读取一些字节数,并将它们存储到字节数组 b中 。

close方法,当完成流的操作时,必须调用此方法,释放系统资源。

2.1 FileInputStream extends InputStream

2.1.1 构造方法

  1. FileInputStream(File file): 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的 File对象 file命名。
  2. FileInputStream(String name): 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name命名。

2.1.2 read

  1. read();
    读取字节,将解释为int,读取到-1结束
    运行前
package com.itheima.demo02.InputStream;import java.io.FileInputStream;
import java.io.IOException;public class Demo01InputStream {public static void main(String[] args) throws IOException {FileInputStream fis = new FileInputStream("d.txt");int len;while ((len = fis.read()) != -1) {System.out.print((char) len);}fis.close();}
}

运行结果

The way you live is closely mirrored in the world you see.

  1. read(byte[] b);每次读取b的长度个字节到数组中,返回读取到的有效字节个数,读取到末尾时,返回-1读取原理
package com.itheima.demo02.InputStream;import java.io.FileInputStream;
import java.io.IOException;public class Demo02InputStream {public static void main(String[] args) throws IOException {FileInputStream fis = new FileInputStream("d.txt");byte[] bytes = new byte[2];int len;while ((len = fis.read(bytes)) != -1) {System.out.println(new String(bytes, 0, len));}fis.close();}
}

运行结果

Th
e
wa
y
yo
u
li
ve
i
s
cl
os
el
y
mi
rr
or
ed
i
n
th
e
wo
rl
d
yo
u
se
e.

使用数组读取,每次读取多个字节,减少了系统间的IO操作次数,从而提高了读写的效率,建议开发中使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/252354.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

1、字节流详解

文章目录 一、字节流1、字节输出流&#xff1a;OutputStream2、字节输入流&#xff1a;InputStream3、使用字节流复制数据4、字节缓冲流 一、字节流 文件字节流 字节流的两个抽象父类&#xff1a;字节输出流&#xff1a;OutputStream和字节输入流&#xff1a;InputStream 1、字…

PS美工教程:制作真实水面倒影效果详细步骤

倒影效果是电商海报和广告类海报常用的表现手法&#xff0c;倒影可以填充画面的空白区域和营造真实的视觉感受&#xff0c;给受众带来更好的视觉体验。 在海报合成中倒影效果可谓是必不可少的存在&#xff0c;那今天潇洒模具学院的老师就教大家通过PS自带的功能打造出真实的环…

CSS图片倒影效果

先看一下效果图 废话不多说直接上代码 <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title><style lang"scss">img {-webkit-box-reflect: below 0px -webkit-linear-gradient(bottom, rgba(25…

3、水面倒影效果

水面倒影效果 概要 我们会使用 Matplotlib 的 pyplot 模块创建图并显示图像&#xff1a; 用以下魔术命令&#xff0c;以便将图像显示在笔记本中而不是在新的显示窗口中&#xff1a; 如果要显示彩色图像&#xff0c;可以使用以下命令将图像从 BGR 转换为 RGB。 最后使用 plt…

CSS3实现倒影效果

css的功能很强大&#xff0c;可以实现很多效果。比如图像的倒影和文字的倒影等&#xff0c;利用的是box-reflect&#xff0c;因为浏览器兼容问题&#xff0c;目前主要采用-webkit-box-reflect来实现&#xff08;谷歌浏览器&#xff09;。 倒影的属性&#xff1a; box-reflect&…

HTML里面设置文本倒影,文字倒影怎么做

现在的文字如果仅仅是在一个平面上,不加任何效果,那就真的是太死板、太单调了,尤其追求艺术的小伙伴们啊,细心的话你就会发现那些神马广告之类的文字都讲究有个性,让人过目不忘的效果,有木有!那么接下来就教大家制作文字效果,就是文字倒影效果制作。广告时间: 人物素描…

倒影(reflections)效果的实现

1、简介 当站在湖畔岸边或者镜子面前的时候&#xff0c;都可以看到倒着的自己&#xff0c;那种效果就叫倒影&#xff0c;或者叫镜面反射。在SPE中也支持这种效果&#xff0c;实现的基本思路是把物体根据反射平面镜像之后再绘制一遍&#xff0c;绘制镜像时有几个问题需要注意&a…

渐变加蒙版做倒影

平面设计是PHOTOSHOP应用最为广泛的领域&#xff0c;无论是我们正在阅读的图书封面&#xff0c;还是大街上看到的招帖、海报&#xff0c;这些具有丰富图像的平面印刷品&#xff0c;基本上都需要PHOTOSHOP软件对图像进行处理。用Photoshop 为图片添加倒影&#xff0c;这个效果不…

联想IBM ThinkPad X201i 笔记本显示屏上方中间的键盘灯不亮解决办法

这款小黑&#xff0c;不记得13年还是14年买的&#xff0c;当年就要7千大洋&#xff0c;那时候觉得很贵咬牙买了下来&#xff0c;今天回头看来贵有贵的道理。因为现在用起来还是很爽&#xff0c;去年安装Win10&#xff0c;然后在上面开发JavaEE项目&#xff0c;很快、畅顺。最近…

ibm 服务器 总显示f1,联想ThinkPad笔记本中F1/F4键盘指示灯一直常亮着如何解决

有不少使用联想ThinkPad笔记本的小伙伴们在使用电脑的时候&#xff0c;发现遇到这样一个情况&#xff0c;就是键盘上的F1/F4键盘状态指示灯常亮&#xff0c;按FNESC组合键也无法取消&#xff0c;按FN和对应的功能键也不行&#xff0c;这可该怎么解决呢&#xff0c;一般是由于热…

联想拯救者 Lenovo Legion 通电自启 插电自启 通电开机 插电开机 Wake on AC

联想拯救者 Lenovo Legion 通电自启 插电自启 通电开机 插电开机 Wake on AC 文章目录 联想拯救者 Lenovo Legion 通电自启 插电自启 通电开机 插电开机 Wake on AC说明一、我的电脑二、详细过程1.BIOS选项2.查阅改BIOS的资料3.修改BIOS失败4.换个思路&#xff1a;不修改BIOS?…

联想键盘sk8821的Fn功能键

1. 联想键盘sk8821的Fn功能键 1.1. 恢复 F1-F12实际功能 F1-F12系统下会默认为快捷键&#xff08;功能键&#xff09;&#xff0c;而非F1-F12实际功能。可能会导致您在使用习惯上的不适应。 键盘驱动安装目录&#xff1a;X:\LX_KEY\Yangtian\Low Profile Keyboard\setup.exe …

如何关闭联想台式机电脑USB键盘的FN功能

如何关闭联想台式机电脑USB键盘的FN功能 现在很多单位配备的联想台式机所配的USB键盘&#xff0c;F1-F12系统下会默认为快捷键&#xff08;功能键&#xff09;&#xff0c;而非F1-F12实际功能。可能会导致您在使用习惯上的不适应。 通过查询联想官网有如下解决方案&#xff0c;…

禁用联想笔记本电脑自带的键盘

最近电脑键盘出现故障&#xff0c;只要一开机&#xff0c;删除键就一直被按着&#xff0c;按其它键后&#xff0c;偶尔就恢复正常状态。被逼无奈&#xff0c;今天拿去电脑维修店&#xff0c;老板说是键盘的问题&#xff0c;需要换键盘。询问价格&#xff0c;说要&#xffe5;30…

杜蕾斯鞋套?又污又高级!

阳历四月雨纷纷&#xff0c;噼里啪啦湿鞋袜。 杜蕾斯专注“防水”九十多年。眼看大家进入了雨季&#xff0c;杜蕾斯上演一出《典中典》&#xff0c;上线经典鞋套。 我怀疑你在招风惹雨&#xff0c;只是我没证据。 穿这个鞋套出门会不会社死不知道&#xff0c;但谁用这玩意儿绝对…

压缩包.zip暴力破解方法

一: 前言 本方法基于虚拟机下的kali系统,软件为kali自带的fcrackzip,有兴趣的童鞋请自行研究下载. 二:方法说明 fcrackzip -help常用参数中文说明&#xff1a; -b 暴力破解模式 -D 使用字典破解模式 -v 就是可以看到更多的信息 -u 用zip去尝试 -l 密码长度 -c 指定掩码类型&…

python暴力破解zip加密文件

前言&#xff1a; 日常工作中&#xff0c;会遇到一些加密的zip文件&#xff0c;但是因为某些原因或者时间过长&#xff0c;密码不知道了。 但是zip文件中文件有很重要很必须。那么&#xff0c;我们试一试万能的Python&#xff0c;暴力破解密码。 一、破解zip加密文件的思路&a…

《在路上 …》 金山卫士开源 , 人生很多感慨

最近写日记少了很多, 主要是很多情绪化的东西, 都汇入了某条有去无回的地下河. 好吧, 不说这些, 来说说金山卫士开源. 相比360安全卫士那种作秀式的开源 (代码只对极少极少的人开放, 隐隐藏藏), 金山这次显得很真诚. 你可以直接看到代码 http://code.ijinshan.com/ http://code…

【Opencv实战】Python神器 | ps做印章太麻烦?无法拒绝的提取印章神技能,很多人都不知道~(附源码)

前言 哈喽&#xff0c;大家好&#xff0c;我是你们的栗子同学鸭~ 更新了很久的爬虫内容啦&#xff0c;已经吸收完了没&#xff1f; 印章作是我们工作中和生活中会经常接触到的东西&#xff0c;一般用来代表某个个体或者群体&#xff0c;有时候 我们需要复刻一些文件&#x…