输入流操作
Posted cstdio1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输入流操作相关的知识,希望对你有一定的参考价值。
将已经存在的字符串设置为系统输入流这是OJ上面不用键盘输入而使用之前写死的字符作为你提交程序输入的原理。
useDelimiter
一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串。
A Scanner分隔符模式将输入打破到令牌,默认情况下匹配空格。
import org.apache.commons.io.Charsets;
import org.apache.commons.io.IOUtils;
import java.io.InputStream;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class OJTest {
public static void main(String[] args) {
List<String> list = new LinkedList<>();
list.add("xiaohu");
list.add("xiaoming");
list.add("zhangjie");
//合并为一个字符以,连接
String names=String.join(",",list);
//将字符串作为系统的输入流
InputStream is= IOUtils.toInputStream(names, Charsets.toCharset("utf-8"));
//重置系统输入流
System.setIn(is);
Scanner sc = new Scanner(System.in);
sc.useDelimiter(",");
while(sc.hasNext()){
String str=sc.next();
System.out.println(str);
}
}
}
以上是关于输入流操作的主要内容,如果未能解决你的问题,请参考以下文章
java内存流:java.io.ByteArrayInputStreamjava.io.ByteArrayOutputStreamjava.io.CharArrayReaderjava.io(代码片段