-
Java连载156-IO总结(三)
一、管道流
final PipedOutputStream pps = new PipedOutputStream();
final PipedInputStream pis = new PipedInputStream(pps);
new Thread(new Runnable() {
public void run() {
try {
pps.write("厉害了".getBytes(StandardCharsets.UTF_8));
pps.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
new Thread(new Runnable() {
@Override
public void run() {
try {
int b3 = 0;
byte[] flush = new byte[1024];
while ((b3=pis.read(flush)) != -1) {
System.out.println(new String(flush, 0, flush.length));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();
-
上面的管道流和Linux中的管道流是类似的
二、基本数据流
-
可以使用DataInputStream等及逆行基本数据的存储
String address = "E:\\d05_gitcode\\Java\\newJava\\src\\com\\newJava\\newFile.txt";
DataInputStream dis = new DataInputStream(new FileInputStream(address));
byte b = dis.readByte();
System.out.println(b);
short s = dis.readShort();
System.out.println(s);
int i = dis.readInt();
System.out.println(i);
long l = dis.readLong();
System.out.println(l);
float f = dis.readFloat();
System.out.println(f);
double d = dis.readDouble();
System.out.println(d);
char c = dis.readChar();
System.out.println(c);
boolean bo = dis.readBoolean();
System.out.println(bo);
DataOutputStream dos = new DataOutputStream(new FileOutputStream(address));
dos.writeByte(1);
dos.writeShort(2);
dos.writeInt(3);
dos.writeLong(4L);
dos.writeFloat(5.0f);
dos.writeDouble(6.0d);
dos.writeChar(7);
dos.writeBoolean(false);
三、缓存流
-
CPU运行速度是内存的几百倍,是磁盘的几百万倍,因此减少和磁盘的交互,就能提高IO的速度,我们在这两者之间提供一个buffer,缓存流(也就是BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter), 来增多一次性读写的数量,减少IO的次数。
四、打印流
-
我们所使用的System.out.println()方法就是打印流的一种
StringWriter sw = new StringWriter();
try (PrintWriter pw = new PrintWriter(sw)) {
pw.println("lisudfos");
}
System.out.println("lisudfos");
五、源码
-
github路径:https://github.com/ruigege66/Java/blob/master/newJava/src/com/newJava -
CSDN:https://blog.csdn.net/weixin_44630050 -
博客园:https://www.cnblogs.com/ruigege0000/
原文:https://www.cnblogs.com/ruigege0000/p/15734697.html
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比