JAVA学习日记:I/O流(3)

   日期:2020-11-10     浏览:98    评论:0    
核心提示:本节课我学习的主要内容有:1.管道流管道流: 用于连接输入流和输出流。 一般运用在两个不同线程之间传输数据。 这里的input是对应从管道中得到数据并输入到别的地方。 output对应的是从别的地方得到数据并输出数据到管道中。PipedTest01类(测试管道类):package LessonForIO03;import java.io.*;public class PipedTest01 { //生产数据的方法,将数据写入管道。 public stat

本节课我学习的主要内容有:

1.管道流

管道流:

		用于连接输入流和输出流。
  		一般运用在两个不同线程之间传输数据。
  		这里的input是对应从管道中得到数据并输入到别的地方。
  		output对应的是从别的地方得到数据并输出数据到管道中。

PipedTest01类(测试管道类):

package LessonForIO03;

import java.io.*;

public class PipedTest01 
{ 
	//生产数据的方法,将数据写入管道。
	public static void outputTo(PipedOutputStream pos)
	{ 
		try 
		{ 
			for (int i=0; i<20; i++)
			{ 
				pos.write(i);
				pos.flush();//每output一次,刷新缓冲区,目的是即刻写出。
				System.out.println("写出数据 "+i+" 到管道中去。");
				
				Thread.sleep(1000);// 每写入一次,该线程就停止一秒,避免写入过快,不明显。
			}
			
			pos.close();
		} catch (IOException | InterruptedException e)
			{ 
				e.printStackTrace();
			}
	}
	
	//取走数据的方法,将管道中的数据取出.
	public static void inputTo(PipedInputStream pis)
	{ 
		try
		{ 
			int length;
			while ((length = pis.read()) != -1)
			{ 
				System.out.println("从管道中读到的数据:"+length);
			}
			
		} catch (IOException e)
			{ 
				e.printStackTrace();
			}
	}
	
	public static void main(String[] args) 
	{ 
		//通过构造函数来组装管道:
		System.out.println("通过构造函数来组装管道:");
		PipedInputStream pis1 = new PipedInputStream();
		PipedOutputStream pos1 = null;
		try 
		{ 
			pos1 = new PipedOutputStream(pis1);//这样的话不能用lambda表达式来初始化new Thread
		} catch (IOException e) 
			{ 
				e.printStackTrace();
			}
		
		//通过connect方法来组装管道:
		System.out.println("通过connect方法来组装管道:");
		PipedInputStream pis2 = new PipedInputStream();
		PipedOutputStream pos2 = new PipedOutputStream();
		try 
		{ 
			pos2.connect(pis2);//他俩倒过来连也行,建议使用。
		} catch (IOException e)
			{ 
				e.printStackTrace();
			}
		
		new Thread(()->{ outputTo(pos2);}).start();
		new Thread(()->{ inputTo(pis2);}).start();
	}
}

本篇部分文字来源于:
咕嘟咖啡杨海滨老师 — 《java编程语言高级特性》
在这里十分感谢老师能够给我带来学习的激情。

2020.11.9
本文章是本人学习笔记,不进行任何商用所以不支持转载请理解!也请别拿去商用!
如果觉得对你有帮助那么欢迎你随时来回顾!
只为记录本人学习历程。
毕
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服