您的位置:首页 > 新闻 > 会展 > 厦门靠谱建网站公司_济南搜点网络科技有限公司_十大少儿编程教育品牌_全自动引流推广软件app

厦门靠谱建网站公司_济南搜点网络科技有限公司_十大少儿编程教育品牌_全自动引流推广软件app

2025/3/10 10:59:41 来源:https://blog.csdn.net/qq_37831759/article/details/142936801  浏览:    关键词:厦门靠谱建网站公司_济南搜点网络科技有限公司_十大少儿编程教育品牌_全自动引流推广软件app
厦门靠谱建网站公司_济南搜点网络科技有限公司_十大少儿编程教育品牌_全自动引流推广软件app

1、IOUtils.toString

String result = IOUtils.toString(inputStream,StandardCharsets.UTF_8);

2、CharStreams

String result = CharStreams.toString(new InputStreamReader(inputStream,Charsets.UTF_8))

附:InputStreamReader类

java.io.InputStreamReader extends Reader是字节流通向字符流的桥梁,它使用指定的charset读取字节并将其解码为字符

继承父类的方法:
int read():读取单个字符并返回
int read(char[] cbuf): 一次读取多个字符,将字符读入数组
void close():关闭该流并释放与之相关联的所有资源

构造函数:
InputStreamReader(InputStream in):创建一个使用默认字符集的InputStreamReader

InputStreamReader(InputStream in,String charsetName)创建使用指定字符集的InputStreamReader

BufferedReader、BufferedWriter
BufferedReader 类从字符输入流中读取文本并缓冲字符,以便有效地读取字符,数组和行。
可以通过构造函数指定缓冲区大小也可以使用默认大小。对于大多数用途,默认值足够大。
由 Reader 构成的每个读取请求都会导致相应的读取请求由基础字符或字节流构成,建议通过 BufferedReader 包装 Reader 的实例类以提高效率。(Reader 构成的对象是字符对象,每次的读取请求都会涉及到字节读取解码字符的过程,而 BufferedReader 类中有设计减少这样的解码次数的方法,进而提高转换效率)

BufferedReader in  = new BufferedReadernew FileReader(“foo.in”));

readLine()读取一行字符串,不含末尾换行符,读取结束再读取返回 null。

BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream("d:/abc/f11")));String line;while ((line = in.readLine()) != null) {System.out.println(line);}in.close();

3、使用Scanner(JDK)

Scanner s = new Scanner(inputStream).useDelimiter("\\A");
String result = s.hasNext() ? s.next() : "";

4、使用Stream API

String result = new BufferedReader(new InputStreamReader(inputStream)).lines().collect(Collectors.joining("\n"))

5、使用parallel 和上面基本相同

6、使用InputStreamReader和StringBuilder

final int bufferSize = 1024;
final char[] buffer = new char[bufferSize];
final StringBuilder out = new StringBuilder();
Reader in = new InputStreamReader(inputStream,"UTF-8");
while(true) {int rsz = in.read(buffer,0,buffer.length);if (rsz < 0) {break;}out.append(buffer,0,rsz);
}
return out.toString();

7、使用StringWriter和IOUtils.copy

StringWriter writer = new StringWriter();
IOUtils.copy(inputStream,writer,"UTF-8");
return writer.toString();

8、常用 ByteArrayOutputStream()

ByteArraryOutputStream result = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) != -1) {result.write(buffer,0,length);
}
return result.toString("UTF-8")

9、常用 使用BufferedReader

String newLine = System.getProperty("line.separator");
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder result = new StringBuilder();
String line; boolean flag = false;
while ((line = reader.readLine()) != null) {result.append(flag? newLine: "").append(line);flag = true;
}
return result.toString();

10、BufferedInputStream和ByteArrayOutputStream

BufferedInputStream bis = new BufferedInputStream(inputStream);
ByteArrayOutputStream buf = new ByteArrayOutputStream();
int result = bis.read();
while(result != -1){buf.write((byte) result);result = bis.read();
}
return buf.toString();

11、使用inputStream.read()和StringBuilder

int ch;
StringBuilder sb = new StringBuilder();
while((ch = inputStream.read()) != -1) {sb.append((char) ch);
}
return sb.toString()

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com