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互转【转文】相关推荐

  1. java string 转 file_java file inputstream string 相互转换

    InputStreamReader是字节流转成字符流的桥梁用来处理文本文件 利用BufferedReader包装InputStreamReader达到较好的性能 BufferedReader的read ...

  2. Java String to InputStream

    Today we will look into how to convert String to InputStream in java. Recently I wrote a post to con ...

  3. 总结的一些json格式和对象/String/Map/List等的互转工具类

    总结的一些json格式和对象/String/Map/List等的互转工具类,有需要的可以看看,需要引入jackson-core-asl-1.7.1.jar.jackson-jaxrs-1.7.1.ja ...

  4. 如何在Java中将字节数组转换为InputStream和OutputStream

    您是否坚持使用编码,因为您有字节数组,并且链中的下一个方法需要InputStream? 不用担心Java有解决方案,您可以使用 ByteArrayInputStream 在Java中将字节数组转换为I ...

  5. String与Date、Timestamp互转

    一.String与Date(java.util.Date)互转 1.1 String -> Date String dateStr = "2010/05/04 12:34:23&quo ...

  6. java String对象转Base64

    项目需求是:需要把world文档,即.doc后缀结尾的文件,通过流的方式读取文件转成String对象,再把String对象转成Base64格式数据展示在xml页面上.具体核心代码如下: String ...

  7. [Java]String类基础知识与常用方法总结

    这篇文章用于记录个人学习过程中Java中String类的一些基础知识和方法.主要记录了String类的特性.常用方法,以及和基本数据类型.包装类互转方面的内容. 源码部分 我们先简易看下Java13中 ...

  8. Java pcm文件与wav文件互转

    Java pcm文件与wav文件互转 2018年05月15日 14:32:28 -过期罐头 阅读数:1432 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn. ...

  9. 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 ...

最新文章

  1. 素数计算之埃氏筛法、欧拉筛法
  2. python中tell_Python的File tell()方法使用方法及作用解析(实例)
  3. 知识图谱(六)——关系抽取
  4. python中数字是常量吗,【python】常量与变量
  5. C++基础学习一(基础之基础)
  6. .exe已停止工作_Windows 10累积更新KB4565503和KB4565483已发布
  7. ECMAScript5新特性总结
  8. numpy.random 模块中文文档学习笔记
  9. Keras 多层感知机 多类别的 softmax 分类模型代码
  10. QQ for linux不用udp8000端口?
  11. xmind思维导图(下载、使用——超级详细)
  12. bigemap软件功能对比
  13. Java工作流系统jflow从表功能介绍一
  14. Ubuntu20.04安装有道词典 + 卸载
  15. VMWARE虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。 模块“Upgrade”启动失败。 未能启动虚拟机。
  16. 16 - 12 - 20 KMP算法 模式匹配 终极奥义!
  17. 【转】欧盟物联网研究战略路线图(1)
  18. 基于51单片机的篮球记分牌设计
  19. T1005: 地球人口承载力估计(信息学一本通C++)
  20. 关于卷积神经网络细节的深入理解

热门文章

  1. linux的常用操作——静态库
  2. git idea 图形化_Git大全,你所需要的Git资料都在这里
  3. android 拍照屏幕大小,Android Camera 找出屏幕的最佳尺寸大小
  4. mysql删除记录后id不连续_Mysql数据库中使用DELETE语句时,一般删除一条记录后ID会不连续,才能让序号继续按顺序排列?...
  5. python实现统计你一共写了多少行代码
  6. frida hook so层、protobuf 数据解析
  7. 卓有成效的管理者--总结
  8. CoCos Creator打包各类问题总结
  9. 计算机远程桌面自动关闭,windows10重启之后自动关闭远程桌面是怎么回事
  10. IBinder获取手机服务信息异常