Atiti 重定向标准输出到字符串转接口adapter stream流体系 以及 重定向到字符串
Atiti 重定向标准输出到字符串转接口adapter stream流体系 以及 重定向到字符串
原理::syso 向ByteArrayOutputStream这个流理想write字节。。然后可以使用toByteArray()得到字节,转化为字符串即可使用啦。。
(一)Stream的分类:
1 Node Stream :基本流,可以从名称中看出他是从哪个地方输入输出的。
1.1 用于文件输入输出流: FileInputStream, FileOutputStream
1.2 用于内存数组的输入输出流:ByteArrayInputStream, ByteArrayOutputStream
1.3 用于字符串的输入输出流:StringArrayInputStream, StringArrayOutputStream
1.4 用于管道的输入输出流:PipedInputStream, PipeOutStream (用于线程间的交互)
二、基于字节的I/O操作(InputStream和OutputStream)
我们先来看看类图:
总共就是两个流阿:字节,字符
字节流可用于任何类型的对象,
而字符流只能处理字符或者字符串,Unicode字符;
也就是说 字节流可以读写所有的文件,
而字符流只能读写文本文件。不能读像音频电影之类的
但是能用字符流的时候就不要用字节流,因为字符流的读写效率更高一些。
本回答由网友推荐
评论
4 3
采纳率:31% 来自:芝麻团 擅长: 生活 电脑/网络 医疗健康 娱乐休闲 社会民生
其他回答
1.因为java要和各种其他的譬如电脑文档等交换信息,就有了输入输出流。
2.从最简单的输入输出流懂起,以后遇到什么解决什么。
3.两大类,字节流和字符流
字节流 :BufferedInputStream,BufferedOutputStream,FileInputStream ,FileOutputStream
字符流:BufferedReader,BufferedWriter,FileReader,FileWriter
4.在读写二进制数据时就会使用字节流。在设计用于处理字符输入输出时用的是Unicode,所以要用字符流,在某些情况下,字符流比字节流更高效。字节流和字符流的功能大部分是并行的。
StringBufferInputStream in=newStringBufferInputStream(content); 但是这个类已经过时了 并且好像不支持中文
public static void main(String[] args) {
PrintStream stdOut=System.out;//保存标准输出流
ByteArrayOutputStream bout=new ByteArrayOutputStream();
PrintStream ps = new PrintStream(bout);
System.setOut(ps);
System.out.println("--wanning..for debug out stacktrace");
byte[] buf=bout.toByteArray();
String s=new String(buf);
//restore std out
System.setOut(stdOut);
System.out.println("aa"+s);
}
StreamUtil sx = new StreamUtil();
sx.RedirectToStrOut();
System.out.println("--wanning..for debug out stacktrace");
String s=sx.getStr();
//restore std out
sx.restoreStdOut();
参考
ByteArrayOutputStream用法 - Mayola - 博客园.html
作者:: 绰号:老哇的爪子 ( 全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊 )
汉字名:艾提拉(艾龙), EMAIL:1466519819@qq.com
转载请注明来源: http://www.cnblogs.com/attilax/
Atiend
Atiti 重定向标准输出到字符串转接口adapter stream流体系 以及 重定向到字符串的更多相关文章
- 函数式接口与Stream流
lambda表达式是jdk8的特性.lambda表达式的准则是:可推断,可省略. 常规代码写一个多线程 public class Main { public static void main(Stri ...
- 黑马函数式接口学习 Stream流 函数式接口 Lambda表达式 方法引用
- 第46天学习打卡(四大函数式接口 Stream流式计算 ForkJoin 异步回调 JMM Volatile)
小结与扩展 池的最大的大小如何去设置! 了解:IO密集型,CPU密集型:(调优) //1.CPU密集型 几核就是几个线程 可以保持效率最高 //2.IO密集型判断你的程序中十分耗IO的线程,只要大于 ...
- python接口自动化(十八)--重定向(Location)(详解)
简介 在实际工作中,有些接口请求完以后会重定向到别的url,而你却需要重定向前的url.URL主要是针对虚拟空间而言,因为不是自己独立管理的服务器,所以无法正常进行常规的操作.但是自己又不希望通过主域 ...
- Linux 标准输入输出、错误输出、重定向标准输出
再来看看 >& 操作符: 重定向操作符 描述 > 将命令输出写入到文件或设备(如打印机),而不是命令提示符窗口或句柄. < 从文件而不是从键盘或句柄读入命令输入. >& ...
- 服务接口API限流 Rate Limit 续
一.前言 上一篇文章中粗浅的介绍使用Redis和基于令牌桶算法进行对服务接口API限流,本文介绍另一种算法---漏桶算法的应用.Nginx想必大家都有所了解是一个高性能的 HTTP 和反向代理服务器, ...
- JS:字符串转成json数据,和json转成字符串方法 iframe获取父级传过来的数据
字符串转成json数据,和json转成字符串方法 //转为JSON adinfo=JSON.parse(adinfo) //转为字符串 adinfo=JSON.stringify(adinfo) 大概 ...
- 常用函数式接口与Stream API简单讲解
常用函数式接口与Stream API简单讲解 Stream简直不要太好使啊!!! 常用函数式接口 Supplier<T>,主要方法:T get(),这是一个生产者,可以提供一个T对象. C ...
- 8000字长文让你彻底了解 Java 8 的 Lambda、函数式接口、Stream 用法和原理
我是风筝,公众号「古时的风筝」.一个兼具深度与广度的程序员鼓励师,一个本打算写诗却写起了代码的田园码农! 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在 ...
随机推荐
- java:关于继承变量的值问题
1.在java中,如果子类继承父类的静态变量时,当你在子类面前修改这个静态变量的值,其父类的静态变量也会改变. 案例: //父类public class Animal { //静态属性 public ...
- mysql 相关问题解决
Windows下解决mysql中文乱码问题 在my.ini中, 在[mysqld]下添加 character_set_server = utf8 在[client]下添加 default-charac ...
- 分离式模型separation model
1.关键字export 在头文件中定义模板,并且在模板的定义以及声明前添加关键字export. exported 模板可以直接使用,不需要看到该模板定义.模板的使用和定义可以分割于两个不同的编译单元. ...
- 关于webapp的一点思考
早上上班路上碰到发传单推广app的小MM被上司训斥,忽然想起一个问题,现在的nativeapp推广成本到底多高?能不能用浏览器访问app的方式降低这个成本. 现在很多app采用壳+web内容的方式,但 ...
- AutoVue ISDK学习总结(一)
这段时间,断断续续花了2,3周时间,研究AutoVue ISDK.貌似这个东西用的人很少,网上只搜到了一篇中文文档.自己英文水平差,Java水平也差,看Oracle官网文档,进展非常慢.到现在,终于对 ...
- PYTHON学习之路_PYTHON基础(6)
学习内容: Python模块介绍 1.time &datetime模块 2.random 3.shutil 4.shelve 5.xml处理 6.configparser 7.hashlib ...
- tableindex
在写代码的时候,失焦的第一反应便是ng-blur,没想到在一个标签上其作用了,多加了几个标签没反应,于是发现了tableindex,写的代码列子如下,希望可以帮助你: <img src='{{a ...
- maven环境终于可以了
说说maven可以后小小的体会吧,虽然还没有用maven运行过工程,体会是pom.xml中的dependency属性可以帮助管理项目中的jar包,只要在这里配置下需要的jar包,保存后就会自动从中央仓 ...
- Android--Alarm机制
1.Alarm 能够实现 Android 中的定时任务,它与 Java 中的 Timer类的区别在于,Android 系统在休眠状态下时 Timer 类中的定时任务可能无法正常运行,而 Alarm 机 ...
- FreeRTOS和Ucos在打开关闭中断的区别