java如何输入字符串_在java中如何将一个输入了 InputStream转为一个字符串String?...
小编典典
将InputStream转换为字符串的方法:
使用IOUtils.toString(Apache Utils)
String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8);
使用CharStreams(Guava)
String result = CharStreams.toString(new InputStreamReader(
inputStream, Charsets.UTF_8));
使用Scanner(JDK)
Scanner s = new Scanner(inputStream).useDelimiter("\\A");
String result = s.hasNext() ? s.next() : "";
使用Stream API(Java 8)。警告:此解决方案会将不同的换行符(如\r\n)转换为\n。
String result = new BufferedReader(new InputStreamReader(inputStream))
.lines().collect(Collectors.joining("\n"));
使用并行流API(Java 8)。警告:此解决方案会将不同的换行符(如\r\n)转换为\n。
String result = new BufferedReader(new InputStreamReader(inputStream)).lines()
.parallel().collect(Collectors.joining("\n"));
使用InputStreamReader和StringBuilder(JDK)
final int bufferSize = 1024;
final char[] buffer = new char[bufferSize];
final StringBuilder out = new StringBuilder();
Reader in = new InputStreamReader(stream, StandardCharsets.UTF_8);
int charsRead;
while((charsRead = in.read(buffer, 0, buffer.length)) > 0) {
out.append(buffer, 0, charsRead);
}
return out.toString();
使用StringWriter和IOUtils.copy(Apache Commons)
StringWriter writer = new StringWriter();
IOUtils.copy(inputStream, writer, "UTF-8");
return writer.toString();
使用ByteArrayOutputStream和inputStream.read(JDK)
ByteArrayOutputStream result = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = inputStream.read(buffer)) != -1) {
result.write(buffer, 0, length);
}
// StandardCharsets.UTF_8.name() > JDK 7
return result.toString("UTF-8");
使用BufferedReader(JDK)。警告:此解决方案将不同的换行符(如\n\r)转换为line.separator系统属性(例如,在Windows中转换为“ \ r \ n”)。
String newLine = System.getProperty("line.separator");
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder result = new StringBuilder();
boolean flag = false;
for (String line; (line = reader.readLine()) != null; ) {
result.append(flag? newLine: "").append(line);
flag = true;
}
return result.toString();
使用BufferedInputStream和ByteArrayOutputStream(JDK)
BufferedInputStream bis = new BufferedInputStream(inputStream);
ByteArrayOutputStream buf = new ByteArrayOutputStream();
int result = bis.read();
while(result != -1) {
buf.write((byte) result);
result = bis.read();
}
// StandardCharsets.UTF_8.name() > JDK 7
return buf.toString("UTF-8");
使用inputStream.read()和StringBuilder(JDK)。警告:此解决方案存在Unicode问题,例如俄语文本(仅适用于非Unicode文本)
int ch;
StringBuilder sb = new StringBuilder();
while((ch = inputStream.read()) != -1)
sb.append((char)ch);
reset();
return sb.toString();
2020-01-10
java如何输入字符串_在java中如何将一个输入了 InputStream转为一个字符串String?...相关推荐
- java.lang.IllegalArgumentException: 字符[_]在域名中永远无效。 at
[http-nio-8080-exec-1] org.apache.coyote.AbstractProcessor.parseHost [xxx_tomcat] 是无效主机注意:更多的请求解析错误将 ...
- java项目----教务管理系统_基于Java的教务管理系统
java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...
- 写一函数,将一个字符串中的元音字母复制到另一个字符串,然后输出
题目描述 写一函数,将一个字符串中的元音字母复制到另一个字符串,然后输出. 输入 一行字符串 输出 顺序输出其中的元音字母(aeiuo) 样例输入 abcde 样例输出 ae #include< ...
- C语言 | 将字符串中的元音字母复制到另一个字符串中
例70:C语言写一个函数,将一个字符串中的元音字母复制到另一字符串,然后输出. 解析:if语句判断一下每一个字母是否符合元音字母,读者看着道题的时候,需要注意一点的是如果用scanf函数是否可以,思考 ...
- c语言如何用fscanf将字符串读取,在c语言中如何将文本内容 赋给一个 字符串
在c语言中如何将文本内容 赋给一个 字符串 来源:互联网 宽屏版 评论 2009-08-13 04:59:12 分类: 电脑/网络 >> 程序设计 >> 其他编程语言 问题 ...
- 写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出。
写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出. #include<stdio.h> #include<string.h> char f(char a[],ch ...
- 写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出
写一个函数,将一个字符串中的元音字母复制到另一个字符串,然后输出 思路:所谓复制到另一个字符串中,就是使a,b数组中元素一一对应,因为字符串结束的标志是\0,所以最后要赋值\0. #include&l ...
- java输入一个字符串_在java中如何用键盘输入一个数,字符,字符串
一,利用 Scanner 实现从键盘读入integer或float 型数据 1 import java.util.*;2 public classtest {3 public static voidm ...
- java输入数字_在java中,如何从键盘中输入数字,字符,字符串
java不像C中拥有scanf这样功能强大的函数,大多是通过定义输入输出流对象. 常用的类有BufferedReader,Scanner. 实例程序: 一,利用 Scanner 实现从键盘读入inte ...
- java中无法解析字符串_关于java:从输入中解析字符串作为参数问题
我想给我在UNIX中编写的Java程序增加更多的命令,但是有问题传递参数.我刚刚在Unix中输入了之前的命令,并将文本文件作为一个程序参数,这个参数工作得很好,但是我想请求输入.试图解决它自己,但有点 ...
最新文章
- BZOJ 2197 [Usaco2011 Mar]Tree Decoration
- 机器学习笔记:VAE
- 网游服务端php5.1时间戳格式化,php格式化时间戳显示友好时间的简单示例
- 重庆理工大学两江校区计算机学院,重庆理工大学两江校区国际项目9月开学
- 远程办公也可以很高效
- socket api中send()和recv()函数工作原理与要点
- MATLAB的GUI设置为不能点击状态(将按钮变为灰色)
- python卸载干净_Python卸载不干净?Mac完全卸载python方法
- EasyRecovery如何恢复虚拟建模软件的数据文件
- [2005.04.28 13:36:04] 孤岛热浪的联想
- python while快速写法_从零开始学Python,带你手把手实战之一
- Microsoft Office Excel 不能访问文件 的解决办法
- 模糊评价模型-以2018美赛为例
- 因子分析法基于matlab,因子分析matlab
- 深度学习怎么入门?零基础快速入门深度学习
- java大文件下载失败_java文件下载超过4G文件错误
- Nginx报错:nginx: [error] invalid PID number in /run/nginx.pid的解决方案
- 修改Cisco交换机ntp服务器,Cisco交换机NTP的配置
- 用计算机怎么打出箭头,怎么打出箭头
- 查询当前日期是一年中的第多少周
热门文章
- ElementUI:el-container实现高度占满
- C++_二维数组的动态申请内存3种方法
- 图像形态学运算之腐蚀-膨胀篇
- 实操教程 | 深度学习pytorch训练代码模板(个人习惯)
- ACM ICMR 2021雷达目标检测挑战赛(ROD2021)
- CatBoost之算法解析(Kaggle常用模型)
- 求数组的子数组之和的最大值III(循环数组)
- idea导入本地idea的web项目(服务器用的是tomcat)
- Codeforces Manthan, Codefest 18 (rated, Div. 1 + Div. 2) E.Trips
- 前端小知识-html5