ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

字符串流与管道流(了解即可)

2022-02-20 14:03:16  阅读:146  来源: 互联网

标签:字符 令牌 TT 管道 线程 字符串 即可


字符串流:

以一个字符串为数据源,来构造一个字符流

 

作用:

在WEB开发中,我们经常要从服务器上获取数据,数据的返回格式是通过一个字符串(XML,json),我们需要把这个字符串构造成一个字符串流,然后再用第三方的数据解析器俩解析数据。

 

1、StringReader

  • 一个字符流,其源是一个字符串。 

2、StringWriter

  • 在字符串缓冲区中收集其输出的字符流,然后可以用于构造字符串。
  • 关闭StringWriter没有任何效果。 在流已关闭后,可以调用此类中的方法,而不生成IOException。

3、StreamTokenizer

  • 流标记器
  • 接收输入流并将其解析为“令牌”,允许一次读取一个令牌。 解析过程由表和多个可以设置为各种状态的标志来控制。 流标记器可以识别标识符,数字,引用的字符串和各种注释样式。
  • 字符值用于查找字符的五个可能属性: 空格 , 字母 , 数字 , 字符串引号和注释字符 。 每个角色都可以有零个或多个这些属性。

public int ttype

  • 在调用nextToken方法后,此字段包含刚刚读取的令牌的类型。 对于单个字符令牌,其值是单个字符,转换为整数。 对于引用的字符串令牌,其值是引号字符。 否则,其值为以下之一:TT_WORD表示令牌是一个单词。
  • TT_NUMBER表示令牌是一个数字。
  • TT_EOL表示已经读取了行尾。 如果使用参数true调用了eolIsSignificant方法,则该字段只能具有此值。
  • TT_EOF指示已经达到输入流的结尾。
  • 该字段的初始值为-4。

 

4、管道流 (需要线程基础)

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

 

作用:

用于线程之间的数据通讯

 

 

代码

StringReader

 

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

StringWriter

操作与以往一样,只是写入而已,不做例子

 

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

 

管道流

 

 

标签:字符,令牌,TT,管道,线程,字符串,即可
来源: https://www.cnblogs.com/xingyboy/p/15915354.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有