java string 转 inputstream_String和inputstream互转【转文】
URLConnection urlConn = url.openConnection(); // 打开网站链接s
BufferedReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "UTF-8")); // 实例化输入流,并获取网页代码
String s; // 依次循环,至到读的值为空
StringBuilder sb = new StringBuilder();
while ((s = reader.readLine()) != null) {
sb.append(s);
}
reader.close();
String str = sb.toString();
====================下面的方法有点恶心,改了改,看起来好多了===========================
String str = "";//add your string content
InputStream inputStream = new ByteArrayInputStream(str.getBytes());
1 packageorg.kodejava.example.io;2 3 importjava.io.ByteArrayInputStream;4 importjava.io.InputStream;5 6 publicclassStringToStream {7 publicstaticvoidmain(String[] args) {8 String text="Converting String to InputStream Example";9 10 /*11 * Convert String to InputString using ByteArrayInputStream class.12 * This class constructor takes the string byte array which can be13 * done by calling the getBytes() method.14 */15 try{16 InputStream is=newByteArrayInputStream(text.getBytes("UTF-8"));17 }catch(UnsupportedEncodingException e) {18 e.printStackTrace();19 }20 }21 }22
1、字符串转inputStream
Java代码
String string;
//......
InputStream is = newByteArrayInputStream(string.getBytes());
2、InputStream转字符串
Java代码
ByteArrayOutputStream baos =newByteArrayOutputStream();
inti;
while((i = is.read()) != -1) {
baos.write(i);
}
String str = baos.toString();
System.out.println(str);
3、String写入OutputStream
Java代码
OutputStream os = System.out;
os.write(string.getBytes());
4、OutputStream写入String
这听起来有点荒谬,OutputStream本来就是输出源,还写入String?
不过最近项目里确实遇到了个类似的问题,比如 SOAPMessage.writeTo(OutputStream os) 这个方法,是将SOAPMessage的内容写到一个输出流中,而我想得到这个流的内容,总不能把他先写进文件再去读这个文件吧,研究了好半天,终于想起可以如下这般:
Java代码
ByteArrayOutputStream baos =newByteArrayOutputStream();
//向OutPutStream中写入,如 message.writeTo(baos);
String str = baos.toString();
这里需要用到一个特殊的类ByteArrayOutputStream,利用他,我们可以将输出流在内存中直接转换成String类型。
具体代码如下:
首先从输入流中将数据读出来写入ByteArrayOutputStream,然后再将其转换成String.
Java代码
InputStream in = urlconn.getInputStream();//获取输入流
ByteArrayOutputStream bos = newByteArrayOutputStream();
//读取缓存
byte[] buffer =newbyte[2048];
intlength =0;
while((length = in.read(buffer)) != -1) {
bos.write(buffer, 0, length);//写入输出流
}
in.close();//读取完毕,关闭输入流
// 根据输出流创建字符串对象
newString(bos.toByteArray(),"UTF-8");
//or
//bos.toString("UTF-8");
根据同样的原理,我们可以将outputstream直接转换成String对象。
指定一下字符集
byte[] b = str.getBytes("utf-8");
String s = new String(b,"utf-8");
OUTPUTSTREAM中方法WRITE用法
void write(byte[] b)
将 b.length 个字节从指定的 byte 数组写入此输出流。
void write(byte[] b, int off, int len)
将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
abstract void write(int b)
将指定的字节写入此输出流。
java string 转 inputstream_String和inputstream互转【转文】相关推荐
- java string 转 file_java file inputstream string 相互转换
InputStreamReader是字节流转成字符流的桥梁用来处理文本文件 利用BufferedReader包装InputStreamReader达到较好的性能 BufferedReader的read ...
- Java String to InputStream
Today we will look into how to convert String to InputStream in java. Recently I wrote a post to con ...
- 总结的一些json格式和对象/String/Map/List等的互转工具类
总结的一些json格式和对象/String/Map/List等的互转工具类,有需要的可以看看,需要引入jackson-core-asl-1.7.1.jar.jackson-jaxrs-1.7.1.ja ...
- 如何在Java中将字节数组转换为InputStream和OutputStream
您是否坚持使用编码,因为您有字节数组,并且链中的下一个方法需要InputStream? 不用担心Java有解决方案,您可以使用 ByteArrayInputStream 在Java中将字节数组转换为I ...
- String与Date、Timestamp互转
一.String与Date(java.util.Date)互转 1.1 String -> Date String dateStr = "2010/05/04 12:34:23&quo ...
- java String对象转Base64
项目需求是:需要把world文档,即.doc后缀结尾的文件,通过流的方式读取文件转成String对象,再把String对象转成Base64格式数据展示在xml页面上.具体核心代码如下: String ...
- [Java]String类基础知识与常用方法总结
这篇文章用于记录个人学习过程中Java中String类的一些基础知识和方法.主要记录了String类的特性.常用方法,以及和基本数据类型.包装类互转方面的内容. 源码部分 我们先简易看下Java13中 ...
- Java pcm文件与wav文件互转
Java pcm文件与wav文件互转 2018年05月15日 14:32:28 -过期罐头 阅读数:1432 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn. ...
- java字符集转换 Big5 和 Unicode互转
完整的代码如下 帮助 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 ...
最新文章
- 素数计算之埃氏筛法、欧拉筛法
- python中tell_Python的File tell()方法使用方法及作用解析(实例)
- 知识图谱(六)——关系抽取
- python中数字是常量吗,【python】常量与变量
- C++基础学习一(基础之基础)
- .exe已停止工作_Windows 10累积更新KB4565503和KB4565483已发布
- ECMAScript5新特性总结
- numpy.random 模块中文文档学习笔记
- Keras 多层感知机 多类别的 softmax 分类模型代码
- QQ for linux不用udp8000端口?
- xmind思维导图(下载、使用——超级详细)
- bigemap软件功能对比
- Java工作流系统jflow从表功能介绍一
- Ubuntu20.04安装有道词典 + 卸载
- VMWARE虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。 模块“Upgrade”启动失败。 未能启动虚拟机。
- 16 - 12 - 20 KMP算法 模式匹配 终极奥义!
- 【转】欧盟物联网研究战略路线图(1)
- 基于51单片机的篮球记分牌设计
- T1005: 地球人口承载力估计(信息学一本通C++)
- 关于卷积神经网络细节的深入理解
热门文章
- linux的常用操作——静态库
- git idea 图形化_Git大全,你所需要的Git资料都在这里
- android 拍照屏幕大小,Android Camera 找出屏幕的最佳尺寸大小
- mysql删除记录后id不连续_Mysql数据库中使用DELETE语句时,一般删除一条记录后ID会不连续,才能让序号继续按顺序排列?...
- python实现统计你一共写了多少行代码
- frida hook so层、protobuf 数据解析
- 卓有成效的管理者--总结
- CoCos Creator打包各类问题总结
- 计算机远程桌面自动关闭,windows10重启之后自动关闭远程桌面是怎么回事
- IBinder获取手机服务信息异常