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