Java读取InputStream到字符串
有时我们可能希望将字节输入读取为字符串。
为此,我们需要找到在字节和“本机Java”UTF-16代码点之间转换的内容,该点用作Char。
使用InputStreamReader完成。
为了加快进程,它是“通常”来分配缓冲区,使得在从输入中读取时我们没有太多开销。
//版本 ≥ Java SE 7
public String inputStreamToString(InputStream inputStream) throws Exception {
StringWriter writer = new StringWriter();
char[] buffer = new char[1024];
try (Reader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"))) {
int n;
while ((n = reader.read(buffer)) != -1) {
//all this code does is redirect the output of reader to writer in
//1024 byte chunks
writer.write(buffer, 0, n);
}
}
return writer.toString();
}
将字节写入OutputStream
一次将字节写入OutputStream一个字节
OutputStream stream = object.getOutputStream(); byte b = 0x00; stream.write( b );
写一个字节数组
byte[] bytes = new byte[] { 0x00, 0x00 };
stream.write( bytes );
DataInputStream示例
package com.streams;
import java.io.*;
public class DataStreamDemo {
public static void main(String[] args) throws IOException {
InputStream input = new FileInputStream("D:\datastreamdemo.txt");
DataInputStream inst = new DataInputStream(input);
int count = input.available();
byte[] arr = new byte[count];
inst.read(arr);
for (byte byt : arr) {
char ki = (char) byt;
System.out.print(ki+"-");
}
}
}
日期:2020-06-02 22:15:20 来源:oir作者:oir
