java中把流转换成字符串

读取文件流
本文介绍使用Java通过输入流读取文件内容的两种方法:一种是直接将读取到的字节转换为字符并拼接到字符串中;另一种是利用`StringBuffer`进行字符串的拼接,适用于大量数据的读取。
int i = -1;
//org.apache.commons.io.output.ByteArrayOutputStream
ByteArrayOutputStream baos = new ByteArrayOutputStream();
while ((i = is.read()) != -1) {
	baos.write(i);
}
String content = baos.toString();



int i = -1;
byte[] b = new byte[1024];
StringBuffer sb = new StringBuffer();
while ((i = is.read(b)) != -1) {
	sb.append(new String(b, 0, i));
}
String content = sb.toString();
 
在不同的编程语言中,使用流的方式将字节转换成字符串的方法各有不同,以下是几种常见语言的实现方式: ### JavaJava 中,可以使用转换流`InputStreamReader`将字节输入流转换成字符输入流,从而实现将字节转换为字符串。示例代码如下: ```java import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStreamReader; class Main { public static void main(String[] args) throws IOException { byte[] bytes = "Hello, World!".getBytes(); ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); InputStreamReader inputStreamReader = new InputStreamReader(byteArrayInputStream); StringBuilder stringBuilder = new StringBuilder(); int data; while ((data = inputStreamReader.read()) != -1) { stringBuilder.append((char) data); } String result = stringBuilder.toString(); System.out.println(result); inputStreamReader.close(); byteArrayInputStream.close(); } } ``` 这里利用了`InputStreamReader`将字节输入流`ByteArrayInputStream`转换为字符输入流,通过不断读取字符并添加到`StringBuilder`中,最终得到字符串[^1][^2]。 ### Python 在 Python 中,可以使用`io`模块中的`BytesIO`和`TextIOWrapper`来实现类似的功能。示例代码如下: ```python import io bytes_data = b"Hello, World!" bytes_io = io.BytesIO(bytes_data) text_wrapper = io.TextIOWrapper(bytes_io, encoding='utf-8') result = text_wrapper.read() print(result) text_wrapper.close() bytes_io.close() ``` 这里使用`BytesIO`将字节数据包装成字节流,再用`TextIOWrapper`将其转换为文本流,最后读取文本流得到字符串。 ### C# 在 C# 中,可以使用`MemoryStream`和`StreamReader`来完成字节到字符串的转换。示例代码如下: ```csharp using System; using System.IO; class Program { static void Main() { byte[] bytes = System.Text.Encoding.UTF8.GetBytes("Hello, World!"); using (MemoryStream memoryStream = new MemoryStream(bytes)) { using (StreamReader streamReader = new StreamReader(memoryStream)) { string result = streamReader.ReadToEnd(); Console.WriteLine(result); } } } } ``` 通过`MemoryStream`将字节数组包装成流,再使用`StreamReader`从流中读取字符串
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值