String str = "";//add your string content
InputStream inputStream = new ByteArrayInputStream(str.getBytes());
1 package org.kodejava.example.io;
2
3 import java.io.ByteArrayInputStream;
4 import java.io.InputStream;
5
6 public class StringToStream {
7 public static void main(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 be
13 * done by calling the getBytes() method.
14 */
15 try {
16 InputStream is = new ByteArrayInputStream(text.getBytes("UTF-8"));
17 } catch (UnsupportedEncodingException e) {
18 e.printStackTrace();
19 }
20 }
21 }
22
-
String string;
-
-
InputStream is =
new
ByteArrayInputStream(string.getBytes());
2、InputStream转字符串
-
ByteArrayOutputStream baos =
new
ByteArrayOutputStream();
-
int
i;
-
while
((i = is.read()) != -
1
) {
-
baos.write(i);
-
}
-
String str = baos.toString();
-
System.out.println(str);
3、String写入OutputStream
-
InputStream in = urlconn.getInputStream();
-
-
ByteArrayOutputStream bos =
new
ByteArrayOutputStream();
-
-
-
byte
[] buffer =
new
byte
[
2048
];
-
int
length =
0
;
-
while
((length = in.read(buffer)) != -
1
) {
-
bos.write(buffer,
0
, length);
-
}
-
in.close();
-
-
-
new
String(bos.toByteArray(),
"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)
将指定的字节写入此输出流。
原理:字节
流
+编码表。当用字符
流
操作字符数据时,会根据当前系统默认的码表,找到字符对应的整数形式,最终
转
为二进制数据,使用字节
流
将字节数据进行读写操作。
Reader:用于读取字符
流
的抽象类。子类有
转换
流
(InputStreamReader)和字符输入
流
(FileReader)。方法和字节输入
流
相似。
Writer:写入字符
流
的抽象类。子类有
转换
流
...
ByteArrayInputStream 是 InputStream 的子类,该
流
可以把一个字节数组在内存中变成一个输入
流
,也就是说,它把一个字节数组 byte[] 包装了一下,使其具有
流
的属性,可顺序读下去。字节数组
流
是和内存中的数组相关的一个
流
,它可以将字节数组写到
输出
流
中,也可以将字节数组从输入
流
中读出来,所有过程不涉及磁盘读写。从以上代码中可以看到,ByteArrayInputStream 是从字节数组中读取数据,这是它的主要特征。字节数组输入
流
常用方法。字节数组
输出
流
常用方法。
字符串
转换
成
流
public InputStream getInputStream(
String
str) {
if (str != null && !"".equals(str.trim())) {
try {
ByteArrayInputStream inputStream = new ByteArrayInputStream(str.getBytes(StandardCharsets.UTF_8));
return
java
编程中字节
流
转换
成字符
流
的实现方法import
java
.io.*;/*readLine方法是字符
流
BufferReader类中的方法* 而键盘录入的方法是字节
流
InputStream的方法* 那么能不能将字节
流
转
成字符
流
再使用字符
流
缓冲区中的readLine方法呢?** InputStreamReader类是字节
流
转
向字符
流
的桥梁。(它本身是一个字符
流
所以在构造时接受一个字节
流
)** *...
基于
JAVA
项目,将输入
string
转
InputStream ,然后将文件下载至浏览器默认位置。 还涉及inputstream
转
string
,
string
写入outputStream,output写入
string
;还有常用Content-type格式
JAVA
将字符串变为输入
流
关于字符串
转
化为输入
流
,我找到2种方法:用
String
Reader将字符串
转
化为Reader用ByteArrayInputStream将字符串
转
化为InputStream. 还有一个类
String
BufferInputStream也可以将
String
转
化为InputStream,但是由于它只支持字符串中每个字符的低八位,所以已经被遗弃了。PS:
java
.io.Reade...
//方法一:ReaderInputStream
ReaderInputStream inputStream = new ReaderInputStream(CharSource.wrap(new
String
(routeSb)).openStream());
//方法二:Apache Common之IOUtils
InputStream targetStream = IOUtils.toInputStream(new
String
(routeSb), StandardCharsets.UTF_8.name