其他分享
首页 > 其他分享> > 10、合并流、字符串流、管道流

10、合并流、字符串流、管道流

作者:互联网

10、合并流、字符串流、管道流

一、合并流

SequenceInputStream:表示其他输入流的逻辑串联,他的的输入流有序集合开始,并从一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,直到包含的最后一个输入流文件末尾为止。

二、字符串流

1、StringRead
其源为一个字符串流
2、StringWrite
一个字符流,可以用其回收在字符串缓冲区的输出来构造字符串,关闭无效。此类中的方法在关闭该流后任被调用,而不会产生如何异常

三、管道流

管道输入流应该连接到管道输出流,管道输入流提供写入管道输出流的所有数据字节。通常,数据由某个线程从PipedInputStream对象读取,并由其他线程将其写入到相应的PipedoutputStream,不介意对这两个对象尝试用单个线程,因为这样可能会锁死线程,管道输入流包含一个缓冲区,可以在缓冲区限定的范围内将读操作和写操作分离开,如果向链接管道输出流提供数据字节的线程不存在,则认为该管道已损坏

import java.io.IOException;
import java.io.StreamTokenizer;
import java.io.StringReader;

/*
 * 字符串流:以一个字符串流为数据源,来构造一个字符流
 * 作用。在WEB开发中。我们经常要从服务器上获取数据,数据的方法返回格式通过一个字符串(XML,JSON),我们需要把这个字符串构造成一个字符流
 * 然后在用第三方的数据解析器来解析数据
 */

public class StringStreamDemo {
	
	public static void stringStream() {
		String info="good good study day day up";
		StringReader sr=new StringReader(info);
		//流表记器
		StreamTokenizer st=new StreamTokenizer(sr);
		
		int count =0;
		while(st.ttype!=StreamTokenizer.TT_EOF) {//指示已读到流末尾的常量。
			try {
				if(st.nextToken()==StreamTokenizer.TT_WORD) {
					count++;
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		System.out.println(count);
	}

	public static void main(String[] args) {

		stringStream();
	}

}

6

标签:StreamTokenizer,10,count,管道,线程,字符串,输入
来源: https://blog.csdn.net/weixin_53330986/article/details/120958945