使用Scanner将InputStream类型转换成String
我们在测试项目中经常会遇到这样的情形:
1. 从文件或网络得到一个InputStream,需要转换成String赋值到别的变量做为另一个方法的入参。
2. 从文件或网络得到一个InputStream后,需要查看得到的InputStream是不是我们所需要的。
下面主要分析如何使用Scanner来处理。
从 JDK 5.0 开始,基本类库中增加了java.util.Scanner类,使用它的Scanner(InputStream source)构造方法,可以传入InputStream,通过它提供的next()方法;查找并返回来自此扫描器的下一个完整标记。完整标记的前后是与分隔模式匹配的输入信息,默认使用空格作为分割符来分隔文本,可以自定义分隔符。
下面是一个简单的例子:
从文件c:/test.txt读取输入流,传入scanner对象,通过next(方法)查找字符串文本,然后打印字符串文本。这样我们就成功的完成了转换。
public static void main(String[] args) throws IOException { InputStream inputStream = new FileInputStream("c:/test.txt");
Scanner scanner = new Scanner(inputStream, "UTF-8");
String sc = scanner.next();
System.out.println(sc);
scanner.close();
}
上面代码是默认使用空格作为分割符来分隔文本,也可以自己定义分隔符,比如我们用逗号“,”作为分隔符。那么输入流中逗号以后的内容都不会传给sc了。
public static void main(String[] args) throws IOException { InputStream inputStream = new FileInputStream("c:/test.txt");
Scanner scanner = new Scanner(inputStream, "UTF-8");
String sc = scanner.useDelimiter(",").next();
System.out.println(sc);
scanner.close();
}
下面将知识拓展一下,
以上的输入流是来自文件,那么要是输入流来自console呢?
public static void main(String[] args) throws IOException { Scanner scanner = new Scanner(System.in, "UTF-8");
String sc = scanner.useDelimiter(",").next();
System.out.println(sc);
scanner.close();
}
输入abc edf wefw,weew,few
输出:abc edf wefw
我们可以看到逗号的文本都没有打印,这是因为next() 方法遇见第一个有效字符(非空格,换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描。
我们再来看看nextLine()方法,nextline()是以回车作为结束标志,它是可以得到带空格的字符串的.
public static void main(String[] args) throws IOException { Scanner scanner = new Scanner(System.in, "UTF-8");
String sc = scanner.useDelimiter(",").nextLine();
System.out.println(sc);
scanner.close();
}
输入abc edf wefw,weew,few
输出abc edf wefw,weew,few
需要注意的是,如果输入流是文件,那么nextLine()方法将只返回文件的第一行。
使用Scanner将InputStream类型转换成String的更多相关文章
- Java 把 InputStream 转换成 String 的几种方法
我们在 Java 中经常会碰到如何把 InputStream 转换成 String 的情形,比如从文件或网络得到一个 InputStream,需要转换成字符串输出或赋给别的变量. 未真正关注这个问题之 ...
- Java 里把 InputStream 转换成 String 的几种方法
我们在 Java 中经常会碰到如何把 InputStream 转换成 String 的情形,比如从文件或网络得到一个 InputStream,需要转换成字符串输出或赋给别的变量. 未真正关注这个问题之 ...
- oracle Clob类型转换成String类型
转载:https://www.cnblogs.com/itmyhome/p/4131339.html Clob类型转换成String类型 oracle中表结构如下: create table GRID ...
- Clob类型转换成String类型
oracle中表结构如下: create table GRID_RESOURCE ( ID VARCHAR2(50), CNNAME VARCHAR2(50), TYPE VARCHAR2(50), ...
- oracle.sql.Clob类型转换成String类型
方法一: public String ClobToString(Clob clob) throws SQLException, IOException { String reString = &quo ...
- 如何将Object类型转换成String类型
1. Object.toString() obj.toString() 注意:必须保证Object不是null值,否则将抛出NullPointerException异常. 2. (String)Obj ...
- int类型转换成String , 不足n位 在前面补0
1.String.format("%02d", 5);-->结果:05 0代表前面要补的字符 2代表字符串长度 d表示参数为整数类型 2.秒转换成时分秒 private St ...
- Java中Clob类型转换成String类型的问题
1.问题: 项目中使用druid+达梦数据库(基本类似Oracle),查出的Clob类型数据在运行时为ClobProxyImpl对象而不是内容,不能转为字符串 2.原代码: map为达梦数据库或Ora ...
- Java,double类型转换成String,String装换成double型
今天,老师布置了小系统,银行用户管理系统,突然发现自己的基础知识好薄弱,就把这些记录一下, double类型转化string:Double.toString(double doub); String类 ...
随机推荐
- JS判断数字类型
JavaScript判断输入是否为数字类型的方法总结 前言 很多时候需要判断一个输入是否位数字,下面简单列举集中方法. 第一种方法 isNaN isNaN 返回一个 Boolean 值,指明提供的值是 ...
- input框中如何添加搜索
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- sublime_key 快捷键
1.Ctrl+H :查找替换 2.Ctrl+D :选择游标所在单词,连续Ctrl+D 实现多行选择(选择与第一次选择相同的单词) 3.Ctrl+K Ctrl+D 跳过当前选择,选择下一个 4.Ctrl ...
- Windows API 编程-----DLL编程之禁止加载自己
和可执行文件一样,动态链接库也有自己的入口地址,如果系统或者当前进程的某个线程调用LoadLibrary函数加载或者使用FreeLibrary卸载该动态链接库的时候,会自动使用3个特定的堆栈参数跳转到 ...
- 创建第一个windows服务
windows服务应用程序是一种长期运行在操作系统后台的程序,它对于服务器环境特别适合,它没有用户界面,不会产生任何可视输出,任何用户输出都回被写进windows事件日志. 计算机启动时,服务会自动开 ...
- SQL Server ->> SQL Server 2016新特性之 -- sp_set_session_context存储过程和SESSION_CONTEXT函数
sp_set_session_context存储过程和SESSION_CONTEXT函数出现在了SQL Server 2016 CTP3.0上.它俩配合起来的作用是sp_set_session_con ...
- 一次查找sqlserver死锁的经历
查找bug是程序员的家常便饭,我身边的人喜欢让用户来重现问题.当然他们也会从正式服务器上下载错误log,然后尝试分析log,不过当错误不是那种不经思考就可识别的情况,他们就会将问题推向用户,甚至怪罪程 ...
- VS2015配置Entity Framework Power Tools Bate4,还有一些使用与注意的地方
今天使用vs2015重新安装了这个名为Entity Framework Power Tools的插件,由于它只支持到2013,因此需要进行一些操作方能使用 下面是一些参考文档 http://www.c ...
- Tomcat启动阻塞变慢
Tomcat 熵池阻塞变慢详解 Tomcat 启动很慢,且日志上无任何错误,在日志中查看到如下信息: Log4j:[2015-10-29 15:47:11] INFO ReadProperty:172 ...
- 【Leetcode】【Medium】Subsets II
Given a collection of integers that might contain duplicates, S, return all possible subsets. Note: ...